Skip to main content

Full text of "Kilobaud Magazine (April 1978)"

See other formats


The 
Small Computer 

Magazine 



T.M. 







Understandable for beginners . . . interesting for experts 



April 1978 1 Issue #76 / $2.00 I DM 7,50 1 Sfr 8, 10 I Ffr 16,0 1 UK £2 



Arthur G. Burns 36 



Tom Rugg, Phil Feidman 22 Kilobaud's Mystery Program ... are you ready for this? 
George Young, Bob Grater 24 Make Your Own PC Boards . . . start with a universal wire-wrap board 
Dr. John f. Stewart 30 CP/M Primer ... a most sophisticated operating system 

Space-Saver System ... the ti 59 and pc-iooa 

How to Make Your SWTP System Happy 

The Coming Tragedy: Poorly Designed Small-Business Systems 

Utility Routines . . . useful programs for your 6800 

Memory Debugging . . . which chip is it? 

3-D Tic-Tac-Toe ... a winner with the whole family! 

Programmed Instruction Made Easy: Tiny PILOT . . . Part 2 

Blue Is the Color . . . Solid State Music is the company 
Kid Korner . . . Cash Register: a practical math simulation 

Explained: String Interpretations . . . parsing techniques for the 6800 

Incredizing . . . amazing, incredible game for 8080 systems! 

Avoid Program Loading and 

Time-sharing for the Home System . . . running two programs at once 

Displaying Hexadecimal ... and other related ideas 

Build a Touch-Response Display ... an advance in human engineering 

Turn It Off! . . . power-down mod for the TRS-80 

Finally: 8080 Meets the Fairchild Video Game 

Get a Watchdog ... to monitor those real-time operations 





Mickey Ferguson 


40 


J 


Robert M. Luby, Jr. 


46 




James P. Fentress 


52 




Albert Brunelli 


64 




Joseph Roehrig 


66 




Allen S. Krieger 


70 




Joe Kasser 


80 




John Eric Victor 


82 




Gary Gaugler 


86 




Philip Tubb 


90 



Harley D. Johnson 98 

James McClure 1 02 

Dave Maciorowski 1 04 

Ken Barbier 110 

Dave Lien, Dave Waterman 114 

Jim Huffman 116 

Dave Brick ner 118 




Publisher's Remarks— 4, Editor's Remarks— 5, Around the Industry— 6, Legal/Business Forum— 6, 
The BASIC Forum— 8, Books— 12, New Products— 14, Letters— 18, Corrections— 120, Kilobaud 
Classified— 120, Contest!— 120, KB Calendar— 121 





I 




THE COMPLETE 

COMPUTER SYSTEM FOI 
ALL APPLICATIONS 



GT-61 Graphic Terminal Kit (less monitor). . . $98.50 



6800 COMPUTER SYSTEM 




PPG-J Potentiometer Digitizer Kit. . . .$39.95 




COMPUTER 



PR-40 Alphanumeric Printer Kit 
$250.00 



SBiTii 6800 ^s-m 




MP-6800 Kit $395.00 MP-6800/2 Kit $439J 

MP-6800/2 (assembled & tested) $495.00 



The SwTPC 6800 computer and its 
matching peripherals offer you one 
of the most flexible, reliable and 
complete systems anywhere. The 
wide range of completely compat- 
ible peripherals makes it possible to 
tailor the basic computer for all 
applications; thus, giving you the 
ease of use and reliability that the 
6800 is famous for in all of your 
computer applications. Why settle 
for less? 



CT-64 Terminal System Kit (less monitor) 
$325.00 

CT-VM Video Monitor for CT-64 
$175.00 





MAIL 

COUPON 

TODAY 




MP-S Serial Interface Kit 
$35.00 



MP-LA Parallel Interface Board Kit 
$35.00 




MP-8M Memory Board Kit. . . .$250.00 

MP- 16 Memory Board (assembled & tested). . . .$400.00 









mMHML 






I 



Ml 



J\. j 



ff (MM i t 



,_«f 5 



MP-C Control Interface Kit 
(Serial). . . .$40.00 




MP-T Interrupt Timer Interface Kit 
$39.95 



- • 



MF-68 Floppy 

Disk Kit $995.00 




MP-R 2716 EPROM Programmer Kit 
$44.95 




MP-N Calculator Interface Kit 
$46.50 




AC-30 Audio Cassette 
Interface Kit. . . .$79.50 



6800 SOFTWARE 
$4.95 & 9.95 







MP-6800 

MP-6800/2 

GT-61 

PPG-J 

PR-40 

CT-64 



Please send item(s) checked. (All prices ppd. Continental U.S.) 



CT-VM 

MPS 

MP-LA 

MP-8M 

MP-16 

MP-R 



MP-C 

AC-30 
MF-68 
MPT 
MP-N 



□ Enclosed is $. 



or Master Charge #. 
Name 



or BAC #. 
_ Bank #. 



Address. 
City 



State 



Expire Date. 



Zip 



□ Please send catalogue of complete 6800 Computer System products. 



SOUTHWEST TECHNICAL PRODUCTS CORPORATION, Box 32040, San Antonio, Texas 78284 




UBLISHER'S 
REMARKS 



Wayne Green 

tually want out of microcom- 
puters won't be enhanced by 
working with one of these small 
systems for starters. Their start- 
up price is low enough to fit just 
about any budget (some are un- 
der $200); but for the most part, 
plan on about $250 for your first 
setup. Dealers tell me that the 
used value of these systems drops 
very little, so you could hardly 
ask for a lower-cost education. 
You'll be able to buy a system, 
use it and learn, and then get a 
good part of your cash invest- 
ment back as you progress to a 
bigger system ... if you are ever 
able to part with your first love. 

These low-cost systems are 
based on the same chips being 
used by full-blown microcompu- 
ters, so you can, if you want, 
stick with your mini-micro and 
just add to it . . . memory, S-100 
bus, floppies, printer, etc. 

The main message is this: Stop 
making excuses about not being 
able to decide or being short of 
money; get a small develop- 
mental or training system and get 
started with the most important 
parts — having fun and learning. 
Every day you wait you are miss- 
ing out on excitement and educa- 
tion . . . you are paying much 
too dearly for your procrastination. 



Go off the Deep End 

Letters from readers and ques- 
tions posed during forums at 
microcomputer shows point up 
the Catch-22 nature of not really 
understanding microcomputers. 
A recent reader poll indicated 
that roughly 25 percent of Kilo- 
baud readers are holding back 
from buying their first micro- 
computer system. The problem is 
relatively simple: just reading ar- 
ticles about microcomputers isn't 
enough to impart a real under- 
standing; you have to have one in 
hand to use along with the articles 
if you are going to make much 
progress. That's fine, but without 
understanding, how can a person 
make an intelligent choice of 
microcomputer(s)? 

So, we have tens of thousands 
of people who are desperately try- 
ing to read enough to understand 
what they should buy . . . but 
who are unable to understand be- 
cause they haven't bought. 

The way out of this mental 
house of mirrors is easy: Flip a 
coin and buy any of the low-cost 
familiarizer systems— the KIM, 
the Elf, the MEK, the Heath ET- 
3400, the E&L, etc. A lot of low- 
cost microcomputers are avail- 
able, any one of which will get 
you going. In fact, they will prob- 
ably be far more valuable to you 
than one of the larger systems 
because their simplicity forces 
you to really learn how they 
work — both hardware and soft- 
ware — and this is your main goal. 
Buyers of larger systems are tend- 
ing to try to go the black-box 
route, which means they want to 
shortcut their learning cycle by 
substituting hardware they don't 
understand, but which is reliable. 
Great — you can play games right 
away, but then you don't really 
understand what is going on 
when you want to start adding 
things to your system. 

Most of these low-cost systems 
can be expanded almost beyond 
belief. Just look at what is hap- 
pening with the KIM! Entire 
books on expanding the KIM sys- 
tem are coming out, and MOS 
Tech has a SuperKIM being 
readied. 

Little that you might even- 



Waiting for Better Prices? 

A recent reader poll indicated 
that there are still thousands of 
potential computer users who are 
hanging around waiting for a 



drop in prices comparable to cal- 
culator and digital-watch price 
drops. It isn't going to happen. 

Oh, we'll have some gradually 
lowering prices, but no cata- 
strophic price reductions are in 
prospect in the foreseeable future. 

Memory will be coming down 
in price on a fairly steady curve as 
bigger chips are made and mass- 
production techniques reduce 
costs. With 8080A chips now 
below $10, how much more can 
you save on a CPU? Bringing the 
8080A down to $5 or even adding 
some memory to it won't cut 
things much. 

Once we get some business sys- 
tems into production we will be- 
gin to see price reductions. A 12 
percent cost reduction is assumed 
when production is doubled, so a 
good, large run of computers 
could bring cost benefits. This is 
still a way down the line. I 
haven't made it a secret that we 
are laying the groundwork for a 
microcomputer publication 
aimed at small business. I haven't 
rushed to get the first issue out 
because the fundamental message 
would have to be: not much for 
you yet . . . perhaps next year. 

If you've been watching the 
prices for used computer systems, 
you've noticed that they are stay- 
ing high; thus, you don't lose a 
lot i f you buy a system , use it for a 
while and then sell it. My advice is 
to buy that computer now and 
have your fun — don't sit around 
waiting for prices to drop and 
find that you've missed out. 

What should you buy? Start 
with any system that appeals to 
you and then go to the next . . . 
and the next. The more systems 
you work with and understand, 
the more fun you'll have and the 
more you'll be worth. 

Money is probably a problem; 
so perhaps you should start with 
one of the mini-micro systems 
such as the KIM. You want to 
learn and have fun, and any of 
these will provide plenty of op- 
portunities. The next step up 
might be to a PET, TRS-80 or 



Reader Responsibility 



One of your responsibilities, as a reader of Kilobaud, is to aid 
and abet the increasing of circulation and advertising, both of 
which will bring you the same benefit: a larger and even better 
magazine. You can help by encouraging your friends to sub- 
scribe to Kilobaud. Remember that subscriptions are guaran- 
teed—money back if not delighted, so no one can lose. You can 
also help by tearing out one of the cards just inside the back 
cover and circling the replies you'd like to see: catalogues, spec 
sheets, etc. Advertisers put a lot of trust in these reader re- 
quests for information. To make it even more worth your while 
to send in the card, a drawing will be held each month and the 
winner will get a lifetime subscription to Kilobaud] 



H8. I'm getting rave letters from 
readers on all of the above 
systems. 

The people who sat around 
waiting for television set prices to 
go down missed several years of 
great entertainment. Don't miss 
the fun ... get a computer and 
join in. You'll have a wonderful 
time. 



Why Equipment Doesn't Work 

At one of the NCC sessions, a 
speaker from one of the top 
microcomputer manufacturers 
explained why so many hobbyists 
have had trouble getting their sys- 
tems working. He pointed out 
that it costs a lot of money to get 
every bug out of a piece of equip- 
ment and that one solution to this 
problem is to start shipping the 
hardware at some early point in 
the design cycle and let the users 
finish the design. In this way, you 
have the money coming in from 
the sales and hundreds of techni- 
cians working on your board. 
You do your engineering by 
opening the mail. The speaker 
said that all of the major firms 
have done this, although most of 
the larger firms don't do it any 
more. 

That goes a long way toward 
explaining why the first system I 
got, even though it was factory 
assembled, took almost a year to 
get working. 

A lot of this nonsense would be 
eliminated if hobbyists and 
dealers would take the trouble to 
put their gripes in writing and 
send them to the manufacturer, 
with a copy to me. I get pretty 
upset when I talk with someone at 
a computer show and hear some 
terrible story of his being vic- 
timized by a manufacturer 
. . . and never doing anything 
about it. With one exception, 
we've had considerable success in 
getting manufacturers to clean up 
their acts. 



A Call for Papers 



Something odd seems to hap- 
pen to hobbyists when a compu- 
ter show issues a call for papers. 
Paper-writers spring up every- 
where, ready to donate their 
hard-earned knowledge to just 
about anyone who asks. 

In many cases, the same 
amount of work would result in 
an article that could be published 

(continued on page 20) 



EDIT OR'S 

REMARKS 



Look Out Sears! 



Have you taken a look at the 
inside cover of your new Mont- 
gomery Ward spring & summer 
catalogue? The Cybervision™ 
home computer has arrived! All 
of us in the personal-computing 
field have been expecting this for 
some time ... it was just a ques- 
tion of who was going to be first. 
Montgomery Ward definitely has 
the jump on the others, and I like 
their approach. They're not 
afraid to call it a home-computer 
system . . . and they devoted two 
full pages to the ad. (I bet there 
was some discussion on whether 
they should call it a "computer 
system" for fear of scaring off 
individuals who have precon- 
ceived notions about computers 
and how they do more harm than 
good.) 

The unit is designed to work 
with a black and white or color 
TV and, therefore, doesn't come 
with a monitor. A cassette re- 
corder is mounted in the top, with 
slots for storing 12 cassettes. 
Theie are two calculator-type 
keyboards provided with the unit 
(full alphabet and digits 0-9). 

As you may have guessed, the 
hardware isn't all that impres- 
sive, and, for a computer hobby- 
ist, the ad leaves a lot more un- 
answered questions than an- 
swered ones. Not that it's of any 
great importance, but it would be 
interesting to find out what com- 
pany is behind the Cybervision. 
On fne important side: What kind 
of microprocessor is the system 
built around . . . what is the 
memory size . . . are there plans 
for future expansion of the mem- 
ory . . . BASIC . . . assembly 
language . . . how about an 
ASCII keyboard interface . . . 
floppy disks . . . and, most im- 
portant, what kind of printer is in 
the works? Actually, the real 
question might be, "Are any of 
those items in the works?" 

The people at Montgomery 
Ward have enough faith in this 
product to give it prime "billing" 
in their catalogue. Without a 
doubt, that faith is not based on 
the hardware I've just discussed. 
No, it's the software that's going 
to make or break any personal 



John Craig 

computer . . . and the Cybervi- 
sion has an impressive array 
(including some I never thought 
of!). The games are there (of 
course) and it looks as if most of 
the popular video games are 
available, or coming up in the 
future. (One of the things that 
bothered me about the list of up- 
coming programs is that there 
were specific dates when it would 
be available. It had better already 
be developed or someone is kid- 
ding someone else about those 
delivery dates . . . but they can't 
kid us.) 

Along with the Game Series, 
MW is offering a Home Series 
(which contains such programs as 
income-tax preparation, calcula- 
tor, vegetable gardening, etc.). I 
guess I wasn't prepared for nur- 
sery stories on the home compu- 
ter just yet . . . but MW has a 
bunch of 'em in their Story 
Series. You may not be ready for 
Hansel and Gretel on your home 
system, but the kids should love 
it! 

I was tickled pink to see that 
the main emphasis in software is 
in the Educational Series (16 pro- 
grams scheduled, as opposed to 
ten for Game, nine for the Story 
and five for the Home series, re- 
spectively). I hope the programs 
are as good as they sound; if they 
are they'll succeed in getting a lot 
of people turned on to home com- 
puters. I feel the most benefit to 
be derived from home computers 
in the years to come will be in the 
educational area. 

I'll have to get in touch with 
our vast underground network to 
see if I can't get the answers to 
some of those questions posed 
earlier. 



Kilobaud Klassroom 



You've no doubt noticed that 
Kilobaud Klassroom has been ab- 
sent from the pages of Kilobaud 
for two consecutive months. 
Some unfortunate incidents be- 
yond our control were responsi- 
ble .. . and we're as sorry about 
it as all of you who are following 
the series. George will be back 
next month . . . bear with us. 



Heard Any 
Good Stories Lately? 

• 

Humor always seems to be in 
short supply in technical/hobby 
publications; it shouldn't be that 
way. If you have any humorous 
incidents, short stories or anec- 
dotes you'd like to share with the 
rest of us, then drop me a line. 
(Cartoon ideas are fine, too.) 



User Groups and New Newsletters 

CP/M Users' Group. Hey, this 
is going to be a biggie! Tony Gold 
and a few associates probably 
have one of the first successful 
software exchange networks in 
the country going . . . and going 
strong! What's really great is that 
the service is, for all practical pur- 
poses, free; and the software 
Tony et al provide is all in the 
public domain. And, what soft- 
ware! At the time this is being 
written they have 14 volumes 
available. Fourteen volumes = 
fourteen diskettes! That's more 
software than you'd probably 
ever be able to use. 

Each volume is available for 
$8, which covers the cost of the 
diskette and a small copying fee. 
(Tony's mailbox does not handle 
blank diskettes ... so don't 
send 'em.) They're also offering 
Microsoft BASIC and Microsoft 
FORTRAN through the users' 
group ... at just a few dollars 
above dealer cost. For you North 
Star owners, CP/M is also avail- 
able (as a commercial product) on 
minidiskettes through the group. 

Drop Tony a line and ask him 
to send you a copy of the incredi- 
ble list of software CP/M Users' 
Group has available (CP/M 
Users' Group Notes). The cost is 
$4 for joining the group. (As a 
side note, they're encouraging the 
formation of local user groups 
across the country.) 

Tony Gold, CP/M Users' 
Group, 345 East 86 Street, New 
York NY 10028. 

1802 Owners. Ipso Facto is a 
publication of the Association of 
Computer Experimenters and has 
some good down-to-earth stuff 
for you 1802 home-brewers. 
Some of the material I looked 
over contained articles on inter- 
facing Don Lancaster's TVT-6, 
building a hex display, cassette 
interfaces and more. 

Tom Crawford, 50 Brentwood 
Dr., Stoney Creek Ontario 
Canada L8G 2W8. 

International Computer Cen- 
ter Director. Well, you 6800 

(continued on page 20) 



kilobaud 



Publisher 

Wayne Green 

Executive Vice President 

Sherry Smythe 

Editor 

John Craig 

Managing Editor 

John Barry 

Editorial Assistants 

Dennis Brisson 

Susan Gross 

Production Department 

Lynn Panciera-Fraser 

Craig Brown 

Gayle Cabana 

Robert Drew 

Michael Murphy 

Weston Parker 

Bob Sawyer 

Noel R. Self 

Robin M Sloan 

Typesetting 

Barbara J. Latti 

Pauline Halvonik 

Jennifer Johansson 

Marie Walz 

Photography 

Bill Heydolph 

Tedd Cluff 

Associate Editors 

Don Alexander 

Tim Barry 

Sheila Clarke 

Rich Didday 

Phil Feldman 

Tom Rugg 

Peter Stark 

Bookkeeper 

Knud E. M. Keller 

Assistant Bookkeepers 

Nancy Dupuis 

Frances Marion 

Dominique Smith 

Cida Teixeira 

Marketing 

Sherry Smythe 

Jack Shimek 

Cynthia Gray 

Circulation 

Dorothy Gibson 

Rhonda Ramsey 

Florence Goldman 

Valerie Horn 

Receptionist 

Doni-Anne Jarvis 

Computer Data Control 

Judy Waterman 

Judy Brumaghim 

Linda Cate 

Mary Kinzel 

Computer Programming 

Ron Cooke 

Richard Dykema 

Steven Lionel 

Printing 

Michael Potter 

William Cering 

Dwight Perry 

Mallroom 

Theresa Toussaint 

Sue Chandler 

Ethan Perry 

Bill Barry 

Stephen Coombs 

Noreen Parker 

Plant Maintenance 

Lorraine Pickering 

Mike Coutu 

Mike Baird 

Advertising 

Heidi Kulish 

Marcia Stone 

lla K. Witty 

European Distributor 

Monika Nedela 

Australian Distributor 

Katherine Thirkell 

Kilobaud is published monthly by 1001001. Inc. 
Peterborough NH 03458 Subscription rates in the 
U S and Canada are $15 lor one year and $36 for 
three years In Europe Kilobaud erscheint mor. 
tatiich bei Fachzeitschrittenvertrieb Monika Nedela. 
7778 Markdorf. Markstr 3 Abonnement DM 70 plus 
Porto 7 20 + gesetzl MWST. Sir 81 plus Porto 7 20 
Australia For subscriptions write — Katherine 
Thirkell. Sontron Instruments. 17 Arawatta St , 
Carnegie. Vic 3163 Australia Please write tor other 
foreign rates Second class postage paid at Peter 
borough NH 03458 and at additional mailing offices. 
Publication No 346690 Phone 6039243873 Entire 
contents copyright 1978 by 1001001. Inc INCLUDE 
OLD ADDRESS AND ZIP CODE WITH ADDRESS 
CHANGE NOTIFICATION 






AROUND 

THE INDUSTRY 



Computer Retailers' 
Association Formed 



The Computer Retailers' 
Association, a trade association 
of computer stores, has been 
formed with 24 founding mem- 
bers, including stores from across 
the United States, and one Cana- 
dian store. The objective of the 
association is to provide services 
that individual stores cannot ef- 
fectively provide themselves. Ex- 
amples of such services include 
compiling industry statistics, 
working with manufacturers to 
improve the relationship between 
computer stores and manufac- 
turers, arranging for group in- 
surance, providing information 
about the computer-store 
business to the financial com- 
munity and encouraging high 
standards among computer 
retailers. Specific objectives will 
be determined at a later date by 



John Craig 
the association's membership. 



How Did the Association 
Get Started? 

The First West Coast Com- 
puter Faire in April 1977 devoted 
a session to computer retailing. 
Just before the session there was 
an informal meeting of several 
computer-store owners. There 
was strong agreement that an 
association of computer stores 
was needed. Portia Isaacson sug- 
gested that a meeting for 
computer-store owners be held at 
the National Computer Con- 
ference in June 1977 to get the 
planning for the association 
underway. 

Computer-store owners were 
invited to the NCC meeting by 
direct mail, through magazine 
announcements and by telephone 
solicitation. Prior to the NCC, 



about 50 stores were polled by 
telephone to determine their level 
of interest in an association of 
computer stores. The response 
was overwhelmingly positive. 

The NCC meeting was chaired 
by Ray Borrill and attended by 30 
to 40 computer-store owners. 
Again, there was universal agree- 
ment on the general need for an 
association. 

Two significant events took 
place at the meeting. First, Los 
Angeles attorney Kenneth S. 
Widelitz, author of Kilobaud's 
Legal/Business Forum, present- 
ed a proposal for a Computer 
Retailers' Association and a 
specific plan for forming it. Sec- 
ond, the Computer Retailers' 
Association Committee com- 
posed of computer-store owners 
chaired by Portia Isaacson was 
formed to implement and sup- 
port Mr. Widelitz's plan. The 
essential steps in the plan to form 
the Computer Retailers' Associa- 
tion were: 

1. Mr. Widelitz would 
establish an interest-bearing 
Computer Retailers' Association 
Trust Account. 

2. Dr. Isaacson would mail a 
letter to all known computer 
stores and prepare a news release 
explaining the plan for forming 
the association and asking that 
computer stores indicate their in- 
terest by sending a $100 check to 



the Computer Retailers' Associa- 
tion Trust Account. 

3. The association would be 
incorporated in California by 
Mr. Widelitz if 20 stores had 
responded by November 15, 
1977. If 20 stores failed to in- 
dicate interest, all money in the 
trust account would be returned. 

Subsequent to the NCC, the 
chairman of the Computer 
Retailers' Association Commit- 
tee did mail a letter to about 250 
computer stores asking their sup- 
port for the proposed associa- 
tion. A news release to all com- 
puter-industry publications was 
also mailed. A questionnaire was 
included with the letter in order to 
determine the level of interest and 
get opinions on the possible ac- 
tivities of the association. The 
results of that survey can be ob- 
tained from the Micro Store, 634 
S. Central Expy., Richardson TX 
75080. 

In August, at Personal Com- 
puting '77 in Atlantic City, two 
meetings of computer-store 
owners were chaired by Portia 
Isaacson. The meetings were well 
attended, not only by about 50 
computer-store owners, but also 
by other interested industry peo- 
ple. In December, the Computer 
Retailers' Association was incor- 
porated as a trade association 
under the laws of the state of 
California. 




In the November Legal/Busi- 
ness Forum I discussed some of 
the philosophical issues raised in 
arguments surrounding the ques- 
tion of whether or not computer 
software should be protected by 
copyright. Although the software 
subcommittee of the National 
Commission on New Technologi- 
cal Uses of Copyrighting Works 
(CONTU) has not yet issued its 
final report, its preliminary 
report did indicate that it believed 
computer programs should be 
protected by copyright. 

In November, I specifically 
avoided getting into any of the 
details of the new Copyright Act 



Kenneth S. Widelitz 
A ttorney-at-Law 

passed by Congress in 1976, ef- 
fective January 1, 1978. A letter 
from Verlynn J. Johnson in the 
October Kilobaud raised some 
questions about copyright which 
John Craig, in his editorial reply, 
indicated would be covered in the 
Legal/Business Forum. OK, 
John, I can take a hint. 

In his letter, Verlynn indicates 
that he is getting into systems pro- 
gramming but has no intention of 
coming up with an operating sys- 
tem completely from scratch. He 
wants to know if he can incorpor- 
ate previously published routines 
and subroutines into his oper- 
ating system and, if so, if he can 



copyright the operating system. 
In order to get to the issues in- 
volved in answering this ques- 
tion, it is necessary to understand 
the basic workings of copyright. 



To Promote the 
Progress of Science 

The Copyright Act was enacted 
by Congress pursuant to its 
power under the Constitution, 
Article I, Section 8, Clause 8, 
which grants Congress the power 
"to promote the progress of sci- 
ence and useful arts, by securing 
for limited times to authors and 
inventors the exclusive right to 
their respective writings and 
discoveries." 

The underlying rationale for 
the Copyright Law provides in- 
centives for the creation and dis- 
tribution of original works of 
value to society. The ultimate 
hurdle the Copyright Law must 
overcome is how to balance the 
societal interests of the broad 
dissemination of creative works 
with the interests of individual 
authors in protecting their prop- 
erty in order that they may finan- 
cially benefit from that which 



they have created. 



Caveat 



Section 117 of the new Copy- 
right Law specifically states that 
the new law does not give the 
owner of copyrighted software 
any greater or lesser rights than 
those afforded under the old law. 
However, Section 117 only re- 
lates to that bundle of rights I 
have discussed under "What Are 
Your Copyright Rights," which 
follows. 

I have discussed those rights in 
terms of the new law because I 
don't think the final CONTU re- 
port will significantly change 
them. I say that because CON- 
TU 's proposed replacement for 
the new Section 117 doesn't ap- 
pear to substantially change any 
copyright rights. 

The new law's provisions relat- 
ing to term of protection, formal 
requirements, infringement, rem- 
edies and other concepts dis- 
cussed in this Forum do not come 
within the scope of the existing 
new Section 1 17 and are applica- 
ble to computer programs. 



Nuts and Bolts of Copyright 

The new Copyright Law fixes 
the duration of copyright for 
works created on or after January 
1, 1978, for a term consisting of 
the life of the author plus 50 
years. Copyright protection of a 
work begins at the work's crea- 
tion under the new law. 

Under the old law there were 
two forms of copyright: common 
law and statutory; the common- 
law scheme protected works until 
they were published, at which 
time the statutory scheme set in. 
This made publication an impor- 
tant occurrence, and much of the 
courts' time was spent in defining 
what it meant. 

Under the new law publication 
is no longer as great a concern to 
authors. However, it still does 
play some role in copyright. The 
duration of copyright for a work 
made for hire is 75 years from the 
year of its first publication or 1(X) 
years from the year of its crea- 
tion, whichever expires first. 



Definitions 

Some definitions are now in 
order. A work is created when it 
is fixed in a copy for the first 
time. Copies are material objects 
in which a work is fixed in any 
method now known or later de- 
veloped, and from which the 
work can be perceived, repro- 
duced or otherwise communicat- 
ed, either directly or with the aid 
crt -& v[\ac\\\we or device. Publica- 
tion is the distribution of copies 
of a work to the public by sale, 
lease or lending. A work made for 
hire is a work prepared by an em- 
ployee within the scope of his or 
her employment, or a work 
specially ordered or commis- 
sioned for use as a contribution to 
a collective or supplementary 
work, among other conditions, if 
the parties expressly agree in a 
written instrument signed by 
them that the work shall be con- 
sidered a work made for hire. 

Let's sort some of this stuff 
out. You are sitting at your TV 1 
writing a program to predict the 
date on which Tralfamadorians 
will next communicate with 
Earth. As you type in the listing 
you are creating a copy. Your 
copyright exists in your program 
from the instant you press a key. 
However, if you are pressing the 
keys of your employer's compu- 
ter, you are creating a work made 
for hire and do not own any copy- 
right. If you are working as an in- 
dependent contractor and are 
creating software for someone 



else's use, you are in a gray area. 
In such a situation, you should 
have a written agreement spelling 
out who will own the copyright. 



What Are Your 
Copyright Rights? 

If you are the owner of a copy- 
right, you have the right to do or 
authorize any of the following: 
(1) reproduce the copyrighted 
v\ork in copies; (2) prepare deriv- 
ative works based upon the copy- 
righted work; (3) distribute cop- 
ies of the copyrighted work to the 
public by sale or other transfer of 
ownership, or by rental, lease or 
lending. Each of these rights is an 
independent right; that is, you 
can enter into a contract with a 
software house that may make 
and sell copies of your program, 
but you can retain the right to 
prepare derivative works. You 
may license a printer to make 
copies of your listing and reserve 
the right to sell such copies for 
yourself. 

However, once you sell an 
authorized copy of your pro- 
gram, you lose control over that 
authorized copy. That is, if I buy 
a copy from you, I then own the 
copy. I can keep and use the 
copy, or I can sell it or lease it. 
However, I cannot make another 
copy of the copy and then sell or 
lease the original while retaining 
the copy that I have made for my 
own use. That would be an in- 
fringement of the copyright. 
More on that later. 

One of the rights previously 
mentioned is the right to prepare 
derivative works based upon the 
copyrighted work. The problems 
raised by this right directly relate 
to the answer to Verlynn's ques- 
tion. The definition of a deriv- 
ative work appears in Section 101 
(quoted in full below) of the 
Copyright Act. 

A "derivative work" is a work 
based upon one or more preexist- 
ing works, such as a translation, 
musical arrangement, dramatiza- 
tion, fictionalization, motion pic- 
ture version, sound recording, art 
reproduction, abridgment, con- 
densation, or any other form in 
which a work may be recast, 
transformed, or adapted. A work 
consisting of editorial revisions, 
annotations, elaborations, or 
other modifications which, as a 
whole, represent an original work 
of authorship is a "derivative 
work. " 

Nothing in that definition 
touches directly on the use of rou- 
tines or subroutines. In fact, 
much of it relates to creative 



endeavors not at all related to 
computer programming. I hope 
the following discussion will tie 
the foregoing definition into an 
answer to Verlynn's question. 

Professor Nimmer, whose 
treatise on copyright is cited in 
virtually every case dealing with 
the subject, has the following to 
say about derivative works. 

If that which is borrowed consists 
merely of ideas and not of the ex- 
pression of ideas, then although 
the work may have in part been 
derived from prior works, it is not 
a derived work. Put in another 
way, a work will be considered a 
derivative work only if it would 
be considered an infringing work 
if the material which it has de- 
rived from a prior work had been 
taken without the consent of a 
copyright proprietor of such a 
prior work. 

To comprehend what Nimmer 
is saying we must first understand 
that in no case does copyright 
protection extend to any idea, 
procedure, process, system, 
method of operation or concept. 
That is, copyright protection ex- 
tends only to the expression of 
ideas, not to the ideas themselves. 
However, some ideas, concepts, 
procedures or processes are so 
basic and fundamental that copy- 
right does not protect an explana- 
tion of them. For instance, con- 
sider your BASIC bubble sort 
technique. 

It is certainly a fundamental 
procedure or process. It may ap- 
pear in a copyrighted program. 
You may look at that bubble sort 
in that copyrighted program and 
say, "Oh boy, that's just what I 
need." You may take that bubble 
sort routine without getting the 
permission of the copyright 
owner and not have infringed on 
the copyright . I f you then use that 
routine in your program, your 
program is not a derivative work, 
although your program may have 
in part been derived from the 
prior work. Of course, the ques- 
tion is, how far can you go? 

You can go only as far as you 
are taking an idea, procedure, 
process or concept. You cannot 
take the expression of such idea, 
etc., because, as the courts have 
stated, "The entirety of the copy- 
right is the property of the 
author; and it is no defense that 
another person has appropriated 
a part, and not the whole, of any 
property." 

Therefore, it seems that unless 
it is a very basic building block, 
you are probably infringing on a 
copyright. Certainly you are in- 
fringing on the copyright if you 
extract a routine that consists of 
several of those basic building 



blocks tied together to ac- 
complish a specific task. 

If there is a fairly sophisticated 
subroutine you wish to incor- 
porate into a program you are 
writing, you had better get per- 
mission from the copyright 
owner to use that subroutine. It is 
perfectly proper to use monetary 
incentives to obtain such permis- 
sion; I am sure virtually all 
owners of software copyrights 
wrote the software with such 
monetary incentives in mind. 

The only time you don't need 
the copyright owner's permission 
is when the work is in the public 
domain. Under the old law, a 
work was placed in the public do- 
main if it was published without 
the affixation of a copyright no- 
tice. Under the new law, if a work 
is published without a copyright 
notice, it will still be subject to 
statutory protection if not more 
than a relatively small number of 
copies have been publicly dis- 
tributed without notice, or if the 
work is registered within five 
years of publication without the 
appropriate notices and a reason- 
able effort is made to add the ap- 
propriate notice to the copies that 
have been publicly distributed. 

However, even if only a rela- 
tively small number of copies 
have been publicly distributed 
without the notice and if no effort 
is made to correct that error or if 
the work is not registered within 
five years, the work will go into 
the public domain. 



Notice Requirements 

The notice requirements re- 
ferred to above are quite simple. 
They consist of a C in a circle, the 
word copyright or the abbrevia- 
tion copr.; the year of the first 
publication; and the name of the 
copyright owner (i.e., Copyright, 
1978, by Kenneth S. Widelitz). 
The notice must be affixed to 
copies in such a manner and in 
such location as to give reason- 
able notice of the claim of copy- 
right. The Register of Copyright 
prescribes regulations regarding 
the exact positioning for various 
creative works. 



Deposit and Registration 

Deposit of copies of copy- 
righted materials with the Library 
of Congress and registration of 
copyrighted materials with the 
Register of Copyrights are sepa- 
rate, although closely related, 

(continued on page 21) 




It ASIC 

FORUM 



Here we are again, with a desk 
piled high with letters from 
BASIC Forum readers. If this 
keeps up (and we hope it does!), 
we will have to use a computer to 
help keep track of reader re- 
sponses. We want to say that we 
do our best to schedule your 
material into the Forum as soon 
as possible after receipt, but with 
so much coming in and such 
limited space, you can expect a 
publication delay of three or four 
months. We also regret that occa- 
sionally letters get completely 
squeezed out of our column. The 
reasons are mostly technical 
(name-address missing, etc.), not 
related to subject matter or point 
of view. At any rate, folks, keep 
those cards and letters coming in. 



How Effective is BASIC? 



In past Forums we have made 
comments regarding the effec- 
tiveness of BASIC as a language 
for beginning programmers. 
We've received several replies, 
and would like to present some of 
them at this time. (We will make 
further personal comments later 
on.) 

The first comes from Richard 
Williams, 135 Harrison St., Apt. 
B, Dekalb IL 60115. He writes: 
"Richard Blumenfeld of 
Brewster NY touched upon a very 
important topic when he men- 
tioned the ever-increasing num- 
ber of instructions being im- 
plemented in the BASIC lan- 
guage. The problem (and it is a 
problem) will be corrected by the 
implementation of a comprehen- 
sive high-level language for those 
who have advanced beyond the 
'primer school' BASIC. 

"After years of association 
with many languages, I would 
recommend PL/1 as the high- 
level language and leave BASIC 
to be used as it is intended to 
be — by the beginner. 

"PL/1 already includes the 
capabilities of FORTRAN, 
BASIC, COBOL, RPG and 
several lesser-known languages 
such as SNOBOL, LISP, etc.; 
because of this it does not need 
the massive alterations as does 
BASIC for it to be fully capable 



John Arnold 7 Dick Whipple 

of handling the many needs of the 
microcomputer user." 

Another letter expressing a 
similar thought, but advocating a 
different language, comes from 
Ray Van De Walker, 212 D 
Nashville St., Hunt [sic] Beach 
CA 92648. "I think that most ad- 
vanced BASIC users have gotten 
into a rut because BASIC is in- 
herently a limited language. It 
was designed that way to make it 
less intimidating. 

"The first language I learned 
was APL. A couple years ago, I 
finally (grudgingly) learned FOR- 
TRAN. Two months ago I 
learned BASIC. Frankly, the 
whole process of learning these 
other languages has taught me 
that it is simply amazing what 
people will put up with when they 
don't know any better. Until I 
learned COBOL I didn't really 
believe that people wrote 
10,000-line programs (100 lines 
of APL can be made nearly om- 
niscient). 

"I do not wish to disparage or 
attack BASIC; it is a wonderful 
language — for simple programs. 
I really feel, though, that if 
you're getting bored, or are really 
tired of 600-line BASIC pro- 
grams, then perhaps it's time you 
learned APL. I don't know of 
any microcomputer APLs that 
are running (manufacturers dis- 
like the additional character set; 
standard APL requires terminals 
that overstrike). Somewhere out 
there (I've heard), there is an 
association of amateurs trying to 
roll their own. I'd dearly love to 
hear from you. Also, imagine 
how much I'd be willing to pay 
for a working APL (there's quite 
a group of us around here) on a 
common micro. 

"The major advantages of 
APL are: 

1. Source language is much less 
bulky. 

2. Source language looping is 
almost never used — most com- 
mon data processing functions 
are primitives (and easy to use). 
Because of this, APL programs 
tend to run very fast. (Sometimes 
even faster than comparable 
Assembly programs; the primi- 
tives are generally better written 
machine language.) 

3. Conditional branching is user 



written (not a feature built into 
the language), thus very flexible. 

4. Any program in a work space 
(working file) can use any other 
program as a subroutine. 

5. Local variables, array opera- 
tions, text execution, execute this 
program when an error occurs. 

"Enough propaganda and 
perhaps you can begin to see how 
people can become APL fanatics. 
Writing games is faster! 
Businesses can use throwaway 
code for even the most demand- 
ing programs (throwaway code 
means it's easier to write a new 
program than modify an old 
one). I'd like to hear from you 
people out there — write to the 
Forum or to me." 

Finally, we present a letter that 
is not so much for any other 
language as it is against BASIC. 
D. A. Harrod, PO Box 9475, 
Rochester NY 14604, has this to 
say: "Regarding your letter from 
Clive Grant (BASIC Forum, 
November 1977), I really don't 
see how he could have learned 
ALGOL in 1952 since Backus 
didn't describe it to the interna- 
tional committee until 1960! (I'd 
also like to know what he ran it 
on. ENIAC?) 

"I pay my rent by program- 
ming in an extended FORTRAN 
that has a Double Complex 
Hyperbolic Tangent function (64 
bits for the real and 64 bits for the 
imaginary part, 16 bytes in all). 
On a machine that has 16 
registers, the only use I can find 
for BASIC is to play games like 
Star Trek. Why? Because BASIC 
is a language invented to teach 
people that computers are noth- 
ing to be afraid of, and it's a nice 
term project for systems- 
software science majors to write 
BASIC for their assemblers, 
interpreters and compilers course 
(maybe only for extra credit). 

"The only reason BASIC is so 
popular is that it's easy to write 
for a machine that doesn't have 
registers (and really, an 8080, 
6800 or 6502 only has an ac- 
cumulator), and anyone can 
teach his 12-year-old how to write 
programs in an afternoon. 

"There's no way around it . . . 
BASIC is trivial, a kludge on the 
way to SNOBOL. An interpreted 
language is by definition slow and 
requires overhead. You will 
always make out better with a 
language that incorporates 
dynamic memory allocation (it 
puts data wherever there's free 
space and does "garbage collec- 
tion" when it runs out of room). 
"Disk BASIC is a real 
mess . . . better to use your disk 
for a compiler to generate 
machine code that takes up 20 
percent of the room a BASIC 



program would occupy, and a 
good relocating loader to support 
a library of functions that are 
loaded as needed (why keep the 
code for SIN, COS and TAN in 
core if all you need is 
LOG . . . maybe you don't need 
any of them for a particular pro- 
gram). 

"What really burns me is that 
no one talks about the language 
used for writing these BASIC in- 
terpreters: PL/M for the 8080, 
and MPL for the 6800. These are 
high-level languages written by 
the manufacturers of these chips 
strictly for the people who plan to 
earn a living from computers, 
and, I guess, therein lies the prob- 
lem. The difference between hob- 
byist and professional is that 
what's "fun" for one is the 
"bread and butter" for the other; 
and no one can advance from one 
to the other until he puts BASIC 
in its proper perspective ... it's 
a three-wheeled velocipede in a 
world of Harley-Davidsons, a 
child's toy, to be discarded long 
before puberty. 

"Perhaps I'll step on a lot of 
toes by saying this, but anyone 
who spends $300 for memory to 
run XYZ-SUPER-BASIC (or 
FOCAL, which is one vendor's 
version of BASIC) might as well 
hire a chauffeur to drive his 
Volkswagen; and I have a bridge 
I'd love to sell him real cheap (it 
connects Manhattan to another 
borough of NYC, and Frank 
Sinatra sang a song on it in a 
movie, a long time ago)." 

Although we appreciate the 
position of experienced and pro- 
fessional programmers, many of 
our readers and a large number of 
computer hobbyists are, after all, 
beginners. BASIC fills a definite 
need for them as it serves to in- 
troduce them to programming in 
a rapid and convenient way. The 
fact is, most hobbyists don't have 
disk operating systems with "Ex- 
tended FORTRAN" and "Dou- 
ble Complex Hyperbolic Func- 
tions," nor do they have a need 
for such sophistication. As a 
beginning programmer develops 
his skills, he will naturally seek 
out more elaborate hardware and 
software capability. But he has to 
start somewhere, and we see 
nothing wrong with starting on a 
small machine with a BASIC in- 
terpreter. 

A point often ignored by 
detractors of BASIC is the conve- 
nient manner in which programs 
can be entered and modified. 
This capability is of great impor- 
tance to the novice who spends 
much of his time experimenting 
with programming techniques. 
After all, we are not born know- 
ing the tricks of the computer 



8 



The many faces of MERLIN 



KiniTtri HERLIN in tht Hix»d. 
(mm (UtH b« 1MU> «raPhic »<><• 



*U* 



W w 



▲ AJL- 



HERLIN if •xctPHonaUy vtrtotlU. Soa* 
o< th» SoMv«rt Pro9roB«ablt «od«t an* 
^.sPlaU fortats or*' 

noreal ASCI 

widao _ 

R,9h» or LtM Justifnd lon9 lints 

Two GraPnic aodas 

Mixed ASCII/CraPhic« (toP n lines) 

HERL1M is ideal for th» saoll s«stea. 

Particularly TURNKEY sYsteas Soae o< 

the «B1 Honitor functions are 
H - Keaory HoditV 
C - CoPy block of aeaory 
E - Execute user Pro9roa 

Set uP to 3 breokPoints 

- OuaP aeaory in hex 

1 - Text inPut aode 

U - UPdate disPloV aode 
X - Exoame CPU remitters 




Dense Mode: 160H * 100V 
Running Man Patterns 



vH5« 31 •• •» « « C0 CZ 74 

HSI Dl El CD 7A C3 CO A4 CI 
••«• 18 CO 47 C2 C3 28 Cfl •• 

vE5t 
• 74C2 

\H5« 74 C2 
••58 01 
\E5« 

1234 5678 1234 
\ES« CI 
1234 5678 
•••61 
SHACBE0LH9L 



Propaganda 



SH « C B E L H SI SH PL PH 
•2 29 29 90 78 56 34 12 •• 01 61 •• 
vM6« 19 CD 
\E5» 

1234 5678 68AC 
\1 

KMT UHT1L YOU SEE ALL THE 

FUNCTIONS (ALL 21 OF THEN') 



Monitor Debug Usage 




Super Dense: 320H * 200V 
Equation Plotting 



ft£H/ MAIN LOOP 

CALL 83 <REfV EOIQ (FLIP SCREEN) 

I-l 



REN/ CALC PATTERN 
REN/ ORAM PATTERN 



REN/ CALC NEXT PATTERN 
REN/ OELAY 



Super Dense: 320H * 200V 
Line Drawing 



P8-130B9 

C0SUB 2528 

G0SUB 4828 REN/ CALC PA 

C0SUB 2228 REN/ ORAM PA 

P8-P8«IS98 

G0SU8 2528 

G0SUB 4828 REN/ CALC NE 

G0SUB 2928 REN/ OELAY 

P9-P8-II98 

G0SUB 2328 REN/ CLEAR 

|»I8-i 

P»»P8-I*98 

GOTO 3858 

REN/ CALULATE PATTERN SUB 

H«28*RND( Z)t88 

L«28+RN0( Z)I88 

0-18«RN0(Z)S3e 



BASIC Program Listing 
Output Shown Below 






Super Dense: 320H * 200V 
3-D Boxes 



Super Dense: 320H * 200V 
Perspective Drawing 



MERLIN (and your S-100 Computer...) 
... the graphics development package you've been waiting for. 

Do these photos suggest an application in your field? Whether you're into architecture, astro- 
logy, music or whatever, you can apply graphics to make your presentations more effective 
and your work more efficient. 



Real Time Plotting 

Heart Rate 
Navigation 
Spectrum Analysis 



Complex Equation Plotting 

Stock Market Trends 
Teaching: Mathematics 
Circuit Responses 



Fine Line Drawings 

Architecture 
3-D Projections 
Circuit Layouts 



Pattern Movement 

Animation 
Games 



MERLIN is also a multipurpose system monitor board with 
ROM monitor and editor software, parallel keyboard port, and 
audio cassetts storage, besides being your text and graphics 
video output device. 

Write or call today for your free copy of our new catalog, an 
index to available application notes, and a list of MiniTerm 
Dealers. 



MERLIN is supported by expert technical assistance, a con- 
stantly expanding series of application notes, and a newly 
formed users group. 

Assembled and tested MERLINs start at $349, $269 for kits. 
Super Dense add-on, firmware, and cassette interface are extra. 




MiniTerm Associates, inc. 



Dundee Park, Andover, MA 01810 (617) 470-0525 



M40 



trade — they are acquired! Com- 
pilers are nice for production 
work where time and memory ef- 
ficiency are practical necessities. 
Compiled programs often require 
a multistep process (compilation, 
assembly, loading and execu- 
tion), which discourages program 
modification and, hence, ex- 
perimentation. Although "load 
and go" compilers exist on big 
machines, we know of none for 
micros. The interpretive mode of 
BASIC, though slower and less 
memory efficient, actually en- 
courages experimentation and 
aids the learning process. 



Computing Arc Sin and Arc Cos 

In the November Forum, a 
contributor needed a way to com- 
pute arc cos and arc sin. Several 
readers responded with sugges- 
tions that we thought might be of 
interest. The first comes from 
W. R. Ayers, 26969 Moody Rd., 
Los Altos CA 94022. He writes: 
"Jim Faliveno and David 
Schwan might better use their 
time programming around the in- 
sufficiencies of their particular 
BASICs than cry out against an 
unjust God or a crooked sales- 
man who hooked them on the 
particular software they have. 

"The enclosed subroutine (see 
Program 1) for ARCSIN con- 
tains only five statements. With a 
few more statements, it can be ex- 
panded to give ARCCOS and 
ARCTAN. If your BASIC 
doesn't include SIN and COS 
maybe you need a new assembler. 
Good luck!" Note that Mr. 
Ayers' program uses an iterative 
technique that will be of some in- 
terest to those in our readership 
more mathematically inclined. 

In many BASICs, arc tan is 



already available. Arc cos and arc 
sin can then be calculated directly 
as suggested by Gary Marcos, 746 
Adams, Albany CA 94706. 

"In the November Forum, I 
read a letter lamenting that there 
is no arc cos or arc sin function on 
most BASIC interpreters. This 
letter was from David Schwan. 

"These functions are very 
valuable for many purposes. One 
such purpose is for the computa- 
tion of the distance between two 
points on a sphere. Recently, I 
was faced with the problem of 
converting a FORTRAN IV pro- 
gram, which used an arc cos func- 
tion, to BASIC. Fortunately, 
most BASIC interpreters do have 
an arc tan function to define arc 
cos and arc sin. I'm dealing with ra- 
dians not degrees (per se), but the 
conversion's easy (Example 1)." 



1000 Y = .2345 

1001 REM SUBROUTINE FOR X = ARCSIN Y 

1002 X = Y* 1.5708 
1004D = Y-SIN(X) 

1006 IF ABS(D)<. 000001 THEN 1010 
1007X = X-l-D/COS(X) 

1009 GOTO 1004 

1010 PRINT X 

1011 PRINT SIN(X) 

1012 END 

Program 1. 



10 FOR I = 100 TO 999 

20H = INT(I/100) 

30T = INT((I-100*H)/10) 

40U = I-100*H-10*T 

50 IF H*H*H + T*T*T + U*U*UOI THEN 70 

60 PRINT I 

70 NEXT I 

80 END 

Program 2. 



100S = TI 

110 FOR A=l TO 9 

120 FOR B = 0TO9 

130 FOR C = 0TO9 

140 IF A* A*A + B*B*B + C*C*C = 100* A + 10*B + C THEN PRINT 100* A + 10*B + C 

150 NEXT C 

160 NEXT B 

170 NEXT A 

180 PRINT (TI-S)/60 

190 END 

RUN 

153 

370 

371 

407 

26.47 

Program 3. 



We wish also to acknowledge 
two letters containing essentially 
the same information as Gary's. 
These were from Jon Kapecki, 
100 Avondale Pk., Rochester NY 
14620, and Phillip O. Martel, 



100 Plastics Ave., Rm 2279, 
Pittsfield MA 01201. 



Let be the angle to be computed (radians). 
Let A be the value given. 
Then to compute: = arc cos (A). 
If A = Othen = 1.570796327 



If A > then = arc tan /V 1-A 2 



(^) 



If A < then = n - arc tan /V 1-A 



For arcsin: = arc sin (A) 

If A = 1 then = 1.570796327 
If A < then = - arc tan 

If A > then = arc tan 



Example 1. 



t^) 



A 



Programming Problem Solutions 

The response to our December 
programming problem was over- 
whelming. From the comments 
of those participating, it is clear 
that we are providing many 
readers with the challenge they 
need to dig into and learn 
something about BASIC. We, 
too, have learned a few new 
wrinkles while examining the 
many programs received. We 
regret that we cannot publish 
every one since space does not 
permit. A few selected entries 
will help illustrate the various 
methods employed to obtain the 
solution. For those who may not 
be familiar with the December 
problem, it was stated in this way: 
"Write a program to find all 
three-digit numbers for which the 
sum of the cube of the digits is 
equal to the number." 



The solutions received fell 
basically into one of three main 
types, which we will denote as 
methods A, B and C. A brief 
description of each follows. 
Method A. All numbers between 
100 and 999 are mathematically 
disassembled into their compo- 
nent digits, then tested for the 
condition stated. 
Method B. A three-nested loop is 
used to test the digits; then, if the 
condition is met, the three-digit 
number is assembled from cur- 
rent loop values. 

Method C. Usually a variation of 
B in which certain values are 
precalculated and stored to in- 
crease execution speed. 

An example of each method 
will help illustrate. Method A is 
shown in Program 2. Line 10 sets 
up a FOR-NEXT loop to estab- 
lish all trial numbers. Lines 20-40 
disassemble the number I into its 
H (hundreds digit), T (tens digit) 
and U (units digit). Line 50 tests 
the conditions of the problem 
and, if not true, skips the PRINT 
I statement. Note in this line that 



10 



10 DEFINT A-Z 

20 FOR I = TO 9: CU(I) = 13: NEXT 

30 FOR I = 1 TO 9 

40 FOR J = TO 9 

50 FOR K = TO 9 

60 IF 100*1 + 10* J + K = CU(I) + CU(J) + CU(K) THEN PRINT I; J;K 

70 NEXT K 
80 NEXT J 
90 NEXT I 



The solution set is 



1 5 3 

3 7 

3 7 1 

4 7 



Program 4. 



3: NEXT 



110 DEFINT A-Z 

120 FOR I = 0TO9:CU(I) = I 

130 FOR I = 1 TO 9 

140 FOR J = TO 9 

150 N = 100*1 + 10*J:S = CU(I) + CU(J) 

160 IF N < S THEN 220 

170 IF N > 2*INT(N/2) THEN 210 

180 FOR K = 0TO9 

190 IF N + K = S + CU(K) THEN PRINT I;J;K 

200 NEXT K 

210 NEXT J 

220 NEXT I 

Program 5. 



multiplication was used to cube 
the digits because exponentiation 
using the t would possibly have 
introduced round-off error. 
Method A is the most obvious ap- 
proach, but not necessarily the 

best. 

Method B was used by Terrell 
D. Abendroth, 3249 D. Street, 
Fort Sheriden IL 60037. He 
writes: "This program was run 
on a Commodore PET 2001 hav- 
ing 8K BASIC. This 6502-based 
system has a real-time clock (TI$ 
gives hours-minutes-seconds; TI 
gives elapsed time in "jif- 
f ies "_l/60 second), so I made 
the program time itself (steps 100 
and 180). Because exponentiation 
uses logarithms, a small rounding 
I ere<M sometimes occurs. Normal- 
ly, this would be of little conse- 
quence, but it does affect logic 
decisions about equality. For that 
reason step 140 uses successive 
multiplication instead of ex- 
ponents . . . ran in 26.5 seconds. 
"Your column is an excellent 
means of learning a wide variety 
of problem-solving approaches. 
The series of problems you are 
presenting is a great incentive to 
get actively involved in efficient 
program writing." 

Line 140 of Program 3 
assembles and tests the digits 
generated in the nested FOR- 
NEXT loop. Method B seemed a 
little faster than method A, but it 
was difficult to be sure because so 
many different programs and 
machines were in use. 



Of those who used method C, 
we picked a letter from Jack 
Thompson, Information Pro- 
cessing Systems, Memphis TN 
38122. "Here are a couple of 
solutions to the problem 
presented in the December 
Forum. The first, Program 4, 
uses the brute-force method. 
After finding the cube of the 
digits to 9 and assigning each of 
these to elements of a vector 



CU(0) to CU(9), it simply checks 
all 3-digit numbers against the 
sum of the cube of their digits and 
prints those that are equal. 

"In the second, Program 5, a 
couple of additional tests are in- 
cluded to eliminate testing of 
some of the numbers. In line 160, 
a test is made to see if the sum of 
the cube of the first two digits is 
already greater than the number 
to be tested. If so, then there is 
no need to add the third digit to 
the number. For example, if the 
first digit, I, is 1, and the second 
digit, J, is 6, then the test checks 
to see if 160 is less than I" + J 3 
( = 217). If the test is true, then we 
may eliminate all further 3-digit 
numbers beginning with 1 
because any further increase in J 
will increase I 3 -I- J 3 faster than it 
will increase 1001 + 10J. 

"The test in line 170 uses the 
following reasoning: The cube of 
an odd number is odd; the cube 
of an even number is even. Sup- 
pose we are testing an odd 3-digit 






Name 

Darel D. Eschbach 
Arizona State University 
Tempe AZ 85281 
Jack R. Frank 
638 W. Addison #24 
Chicago IL 60613 
Jim Gammell 
425 So. Oly#13 
Kennewick WA 99336 

Clive Grant 
Compumatrix Inc. 
Airport Rd. 
Laconia NH 03246 
Rodney V. Hamilton 
29 North Alder Dr. 
Orlando FL 32807 
John E. Hartford 
50 Maple Sq. 
Franklin NH 03235 
Joe Holliday 
Box 1 
Luverne AL 36049 



Table 1. 

System 

PDP-11/70 



TRS-80 
IBM 370/158 
(FORTRAN) 
PT SOL 20 
5K BASIC 

Honeywell 635 



SWTP 
8K BASIC 

TRS-80 



HP 2000 



number and the sum of the cube 
of the first two digits of this 
number is odd. Then, adding the 
cube of the third (odd) digit to 
this sum will produce an even 
result which, of course, could 
not equal the odd 3-digit number 
we are testing. Thus, if we are 
testing an odd 3-digit number, 
then the sum of the cube of the 
first two digits cannot be odd. 

"Now suppose, instead, that 
we are testing an even 3-digit 
number and the sum of the cube 
of the first two digits is odd. 
Adding the cube of the third 
(even) digit to this sum would 
produce an odd result that could 
not possibly equal the even 
3-digit number we are testing. 
Thus, if we are testing an even 
3-digit number, the sum of the 
cube of the first two digits can- 
not be odd. Between the two 
cases, we may eliminate all 
numbers where the sum of the 
cube of their first two digits is 
odd. 

"Out of curiosity, I ran this 
last program on the Xerox Sigma 
9 at Memphis State University 
using Xerox Extended BASIC in 
a run time of 0.51 seconds! I 
hope you continue these little 
programs in the future. They can 
be quite fun." 

As in a previous Forum we 
have resorted to a table to sum- 
marize the many solutions re- 
ceived. Included with each entry 
are these data items: name and 
address of programmer, com- 
puter used, method and run 
time. The entries are given for 
convenience in alphabetical 
order. While we call this BASIC 



Method 


Time 


B 


6s 


A 


?s 


A 


.21 s 


B 


38 s 


C 


18.4 s 



B 



.475 s 



B 



48 s 



38 s 



13s 



11 






Forum, you will note that we in- 
cluded programs run in other 
languages and on hand 
calculators. 

Although generalizations are 
difficult to make and sometimes 
hazardous, there is one in pro- 
gramming that is widely ac- 
cepted. Stated simply it is, "Run 
time varies inversely with 
memory space used by the pro- 
gram." In other words, methods 
that speed execution generally 
use more memory. In many 
cases, the programmer merely 
exchanges slower mathematical 
calculations for faster data 
manipulation in memory. So 
long as memory is not at a 
premium, the speed advantage 
should be taken. 

The December problem seems 
to support this idea. Methods A 
and B use the least memory, 
depending as they do on brute- 
force calculation. As expected, 
they give the slowest execution 
speeds. Method C, on the other 
hand, uses more memory in the 
form of array storage, thus 
avoiding much repetitive calcula- 
tion. The result — better execu- 
tion times. Of course, a terribly 
inefficient algorithm using huge 
blocks of memory could be made 
that would be as slow as next 
Christmas! Perhaps that's why 
our English teacher used to ad- 
monish us that "a generalization 
is not worth a damn!" 

The past few programming 



David Husnian 

1731 NW29 

Oklahoma City OK 73106 

Thomas E. Hutchinson 

35 Warrender Ave. Apt. 208 

Islington, Ontario M9B 5Z5 

Canada 

F. Robert Jacobs 
3013Trentwood Rd. 
Columbus OH 
Mark R. Kato 
1114 W. 123rd St. 
Los Angeles CA 90044 
J. E. Kircher 
2301 Palmyra Rd. 
Hannibal MO 63401 
Michael C. Koss 
1534 NW 31st St. 
Oklahoma City OK 73118 



DEC BASIC PLUS 



TI-58 



B 



2.8 s 



1 1 / 2 hrs 



SWTP 6800 


C 


51 s 


8K BASIC 






WANG PCS 


A 


163 s 


Digital Group 


A 


63 s 


Z-80 


C 


14 s 


P.T. 5K BASIC 






Apple-ll 


A 


17s 




B 


13 s 




C 


8s 



problems have emphasized 
calculation. We thought for a 
change we would submit a data- 
manipulation puzzle to readers 
of the Forum. This program has 
a way of being deceptively simple 
to beginners — so watch out! 



Casting Out Duplicates 



Write a BASIC program (1) 
that will accept any list of integer 
numbers of three digits or less, 
then (2) print the entire list as 
entered, then (3) reprint all 




131 BOOKS 



An Introduction to 

Microcomputers, Vol II 

(June 1977 Revision) 

Osborne, Jacobson, Kane 

Osborne and Associates, Inc. 

Berkeley CA 

1176 pages, $15 



How do you review a book like 
this? You could go on for pages 
about the history of its first edi- 
tion; the way its success shook up 
the book publishers ("What? 
30,000 copies sold in the first five 
months? There must be a huge 
market out there!"); the way it 
signaled a mad rush to bring out 



new products (can't you just 
imagine a group of bleary-eyed 
toy designers leafing through 
their well-worn copies of 
Osborne's first book, trying to 
figure out which chip to order?); 
the way it sold to a much larger 
audience than the author an- 
ticipated (it is a standard feature 
of hobbyists' libraries, used for 
college courses, skimmed by 
managers, as well as being in- 
dispensable to design engineers). 
Or you could discuss whether 
his offhand comments (more 
specifically, the benchmark pro- 
gram Osborne used in his first 
edition— as well as here) have had 



elements of the list that appear 
only once (see below). 

List: 12, 36, 4, -8, 12, 4 
Print: 36, -8 

Use the following list below as 
a test for your program: 6, -10, 
15,7,7,7,6,-8,7,2, 150,-6, 13, 
12, 12, 5, -5, 19, 18, 19, 18, 19, 
105,421,31, 5. 

Try to make your solution pro- 
gram as memory efficient as 
possible. Assume that the list will 
contain fewer than 100 items. 

Send your solution and any 
comments to The BASIC Forum, 
PO Box 7082, Tyler TX 75711. 



(Note this address. Please do not 
send BASIC Forum-related ma- 
terial to Peterborough. Thank 
you.) 

John and Dick include in this 
month's Forum a list that con- 
tains the names and addresses of 
some of those who submitted 
results obtained from running the 
December problem. The list in- 
cludes the type of system used, 
the method and the run time. 
These ranged from an IBM 
370/158 with a run time of .21 
seconds to a TI 58 programmable 
calculator with a run time of VA 
hours (see Table I). —John. 



any influence on the design of 
more recent chips ... or you 
could trace the revisions, expan- 
sions, revisions, deletions, revi- 
sions, etc., that Osborne and his 
crew have undertaken to produce 
this hefty 1 176-page volume from 
two chapters totaling 1 5 1 pages in 
the first edition. But instead of all 
that ... let me try to describe 
this volume as it stands now, 
without mention of its past 
history. 

Although a wide range of peo- 
ple will find this book interesting 
and fun to read or skim, it is real- 
ly aimed at a very specific 
group — people who are in the 
process of choosing which micro- 
processor to use in a specific ap- 
plication. 

If I were in that situation, I 
would want the chance to sit 
down with an expert to chat 
about what's available, compare 
alternatives, suggest relevant 
criteria for selecting one chip over 
another and so on. In addition, 
I'd want to have spec sheets from 
each chip, including descriptions 
of the instruction sets. This is ex- 
actly what this book provides— 



just about everything you'd need 
to know, except prices. 

Specifically, this latest revision 
covers the four-bit single-chip 
TMS 1000 series of microcom- 
puters by Texas Instruments, the 
Fairchild F8, National Semicon- 
ductor's SC/MP, the 8080A, In- 
tel's 8085, the Zilog Z-80, the 
6800, MOS Tech's 6500, the 
Signetics 2650, the COSMAC, 
the IM6100, the SMS300 micro- 
controller, the Pace, General In- 
struments' CP1600, Tl's 9900, 
two different single-chip micro 
Novas, plus shorter sections on 
three different lines of bit-slice 
products and an overview of the 
Hewlett-Packard MC2 micropro- 
cessor. 

Appropriately, the 8080A 
chapter is the longest and, where 
reasonable, other products are 
compared to the 8080 and 8085. 
In most cases, the description of 
the microprocessor is followed by 
descriptions of relevant support 
chips. While some of the included 
material is taken directly from 
manufacturer spec sheets, the 
authors attempt to describe each 
chip in a uniform language and 



12 



notation so the reader doesn't get 
lost in conflicting terminology. 

There is something distinctive 
about the writing style that I can't 
quite put my finger on. It's 
straightforward, not * 'shooting 
from the hip," and very deci- 
sive—not exactly humorless as 
much as sincere. It's as if 
Osborne himself, half computer 
expert, half private eye, is sitting 
on a stool across from you, 
smoke swirling in the bright light. 
He speaks in short, sharply 
pointed sentences. He doesn't 
want you to go astray. 

He is supremely sure of his 
motives, ethics and methods, 
even though the world is a sticky 
place. "... instruction sets are 
very subjective; right and wrong, 
good and bad are not easily de- 
fined." When he has the facts to 
back him up, he pulls no punches. 
This book delivers. 

Rich Didday 
Santa Cruz CA 



Programming Proverbs and 

Programming Proverbs for 

FORTRAN Programmers 

Henry F. Ledgard 

Hayden Book Company, Inc. 

Rochelle Park NJ 

1975, $6.95 



Except for the program ex- 
amples, these two books are 
almost identical, word for word, 
so there is no need to buy both. 
The shared content, however, is 
so useful that I recommend get- 
ting one of them. The programs 
in the first book are written most- 
ly in PL/1 and ALGOL 60 with a 
smattering of BASIC, while the 
latter book gives most of its ex- 
amples in FORTRAN. Although 
I generally program in FOR- 
TRAN on big machines, I found 
the first book more interesting 
because of its variety. Knowledge 
of the language used in the ex- 
amples was helpful, since I was in 
the midst of examining a lot of 
languages and was able to follow 
the examples. 

The highlights of the books are 
the 25 proverbs that form chapter 
two and the emphasis on top- 
down programming throughout 
the books. They detail an ex- 
tremely common-sense and logi- 
cal technique for doing any kind 
of programming. Some of the 
suggestions may initially offend 
some programmers who pride 
themselves on being able to write 
instant code or compact pro- 
grams into a few lines. Based on 
my experiences before and after 
reading the books, programs are 
a lot easier to develop and, 
especially, to come back to if the 



techniques are followed. 

Top-down programming is 
essentially the process of defining 
the problem several times, each 
time in more and more detail. 
Each definition serves as a guide 
to find the next solution. Further- 
more, the process emphasizes 
constructing a series of modules, 
which I have often found useful 
in other programs. 

Example proverbs include: (#2) 
think first, program later . . . 
"Examine the problem carefully. 
Consider alternative approaches 
. . . Give yourself time to polish 
the algorithm." (#12) use in- 
termediate variables properly. 
The first example illustrates how 
a lack of intermediate variables 
can bury the outline of the pro- 
gram. The second example 
displays the outline more clearly. 



pears to comprise superfluous in- 
formation, but I am sure that the 
novice programmer will appre- 
ciate the explanations and 
flowcharts. Each simulation con- 
tains a scenario, sample run and 
flowchart, followed by a descrip- 
tion of the variables, then the 
listing. 

The simply written lists make 
modifications to other systems 
easy. Many lines contain only one 
statement, and are numbered in 
multiples of ten. All REMark 
statements have a units digit of 
five, and the rules are written in 
the third person for placement in 
a subroutine. Suggestions for 
program modifications are given 
to spur the reader's creativity. In 
some cases, formats for playing 
boards, charts and graphs are 
supplied. 



IC Timer Cookbook 

Walter G. Jung 

Howard W. Sams & Co. 

Indianapolis IN 

287 pages, $9.95 



RESULT = ALOG(SQRT(EL-2.0*FULL(R-Y))) + 4.0*FULL(Y-R) 
Example 1. Lack of intermediate variables. 



WEIGHT = ALOG(SQRT(EL-2.0*FULL(R-Y))) 

SIZE = 4.0*FULL(Y-R) COST = WEIGHT + SIZE 

Example 2. 



The books are written in a style 
that is fun to read. For those who 
feel terribly bound, proverbs #24 
(consider another language) and 
#25 (don't be afraid to start over) 
can be quite relaxing. The 
balance of the book includes 
some thoughts about specific 
programming problems and ex- 
pansion on details of several of 
the proverb topics, including 
mnemonic names, prettyprinting 
and recursion. 

I recommend these books, 
which are available in many com- 
puter stores and some libraries, as 
well as from the publisher. The 
FORTRAN book, with its bright 
pink cover, particularly stands 
out on the store shelf. It is worth 
getting beyond the cover. 

Mike Firth 
Dallas TX 



Stimulating Simulations 

C. William Engel (author-pub.) 

Tampa FL 



Stimulating Simulations is a 
collection of ten programs writ- 
ten for the computer buff who 
has just progressed beyond the 
simple number-guessing games 
and is ready for a little imagina- 
tion. At first glance the book ap- 



Some of the simpler simulations 
are Monster Chase and Art Auc- 
tion, in which the skill of the 
operator is tested mildly (trying 
to elude the monster's clutches 
for ten moves can sometimes be 
difficult!). Gone Fishing, Space 
Flight and Forest Fire are rather 
routine, but offer languid enter- 
tainment to someone trying to 
outwit the computer. The most 
complex and interesting is Dia- 
mond Thief, where you, as detec- 
tive, try to determine which of 
five suspects is the culprit. Your 
task is complicated by suspects 
having a five-percent chance of 
error and a like chance of forget- 
fulness. The whole run can be 
much more fun than the old 
board games. 

In general, Dr. Engel's simula- 
tions show reasonable imagina- 
tion without the complex routines 
commonly found in programs of 
this type. Stimulating Simula- 
tions should be useful to the 
beginner because it gives detailed 
instructions and does not require 
extremely advanced BASIC com- 
mands. Once you're into them, 
however, the ten routines go fast, 
and you will soon be looking for a 
more advanced edition. 

Robert Soltysik 
Piano TX 



I have noticed in several places 
statements that suggest the IC 
timer is as important and useful 
as the op amp. Here is a book that 
proves this by providing nu- 
merous circuits, and also puts a 
lot of information on the 555 and 
its relatives in one place. 
Although I have seen a lot of dif- 
ferent applications for the IC 
timer, there were numerous ideas 
presented in this book that I had 
not yet come across. I believe that 
this is because many of these cir- 
cuits have come from profes- 
sional magazines such as Elec- 
tronics. 

If you have seen Walter Jung's 
other book, The IC Op Amp 
Cookbook, you will find the 
layout of this book familiar. The 
book leads off with a description 
of the basic RC timer, around 
which all IC timers revolve. Now 
the reader is ready to discover the 
workings of specific IC timers, 
including the 555, 556, 322, 3905, 
2240, 2250 and 8260. I am sure 
that everyone is familiar with the 
555 and 556 but, you might ask, 
what are these other ones? They 
are precision and programmable 
timers. (This is not the place to 
get technical, so either get some- 
one to write about these for 
Kilobaud or get this book if you 
want to know more.) 

The book's second chapter in- 
cludes block diagrams, internal 
schematics and pin-by-pin de- 
scriptions of the devices. I have 
noticed that people miss a lot 
because they are not properly ac- 
quainted with the full capabilities 
of some ICs; so this information 
is very helpful. 

The third chapter is devoted to 
general information about IC 
timers. Included here are pin con- 
nections, design precautions and 
some thoughts about compo- 
nents to be used in conjunction 
with the timers. 

With the basics behind him, the 
reader of this book is now ready 
to enter the realm of actual ap- 
plications. The applications sec- 
tion is broken down into three 
chapters: "Monostable Timer 
Circuits," "Astable Timer Cir- 
cuits" and "IC Timer Systems 
Applications." Circuits here 
range from an astable that uses 
only one resistor and one 
capacitor, to a "Wide Range 
Pulse Generator." Full informa- 
tion is provided along with the 



(continued on page 21) 



13 



„ NEW 

Products 



ANSI Standard FORTRAN IV 



Technical Design Labs an- 
nounces the first complete ANSI 
Standard FORTRAN IV for a 
microcomputer, written for 
Technical Design Labs and the 
Z-80 by Small Systems Services, 
Inc. 

Operationally, this FORTRAN 
is a disk-oriented system. It runs 
in less than 24K with DOS, and 
both FDOS IV and CP/M ver- 
sions are available. 

This FORTRAN IV package 
includes both the floppy diskette 
with object code and a user's 
manual. Additional documenta- 
tion and support packages are 
available. It is priced at $349. 

Technical Design Labs, Inc., 
Research Park, Building H, 1101 
State Road, Princeton NJ 08540. 



chroFresh to utilize the natural 
timing of the S-100 bus. Synchro- 
Fresh circuitry monitors the 
microprocessor's machine states, 
utilizing the T 4 states for refresh. 
T 4 always occurs during instruc- 
tion fetches, leaving memory 
available for refresh. 

The Thinker Toy Econoram 111 
8K with SynchroFresh is being 
supplied as part of The Equinox 
personal computer system by 
Godbout Electronics, and is 
available by direct mail from 
Thinker Toys. 

Thinker Toys, 1201 10th St., 
Berkeley CA 94710. 



The Micro Works Digital 
Video System 



New Drop in Memory Prices 



The new refresh design, Syn- 
chroFresh, is simpler than pre- 
vious approaches. SynchroFresh- 
equipped 8K memories have been 
announced as low as $149. Using 
SynchroFresh, the new 8K mem- 
ories use half the power of static 
boards, and can undersell both 
static and older design dynamic 
memories. 

The SynchroFresh system elim- 
inates reliability problems be- 
cause it does not interrupt normal 
CPU operations or timing in 
order to perform memory re- 
fresh. Instead, inventor/designer 
George Morrow planned Syn- 



The Micro Works Digisector 
(DS-68) allows a 6800 computer 
system to see! The Digisector 
functions with an inexpensive 
television camera to present the 
computer with a high-resolution 
digitized picture. The DS-68 re- 
quires one I/O slot in the SWTP 
6800 computer (or equivalent) 
and accepts either interlaced 
(NTSC) or non-interlaced (In- 
dustrial) sync pulses from the 
video source. It features 256 by 
256 picture element resolution, 
with up to 64 levels of grey scale. 
Data conversion times can be as 
low as three microseconds per 
picture element. (The computer 
portrait shown in the picture was 
taken by a DS-68 and printed on 
the Malibu Design Group's 
Model 160 printer.) 

Operation is simple. The com- 




- Z&0©G3© 




wm 



The Digisector meets the Malibu Design Group 's Printer. 



puter sends the DS-68 two 8-bit 
addresses (X and Y coordinates), 
and it returns the digitized 
brightness of the image at the 
specified location. Applications 
include precision security sys- 
tems, moving target indicators, 
computer portraiture and more. 
With cleverly written software, 
the DS-68 can read paper tape, 
punched cards, strip charts, bar 
codes, musical scores and 
Kilobaud. 

Like all Micro Works prod- 
ucts, the Digisector comes fully 
assembled, tested and burned in. 
The price is $169.95; software for 
computer portraiture and slow- 
scan television is included. 

The Micro Works, PO Box 
1110, Del Mar CA 92014. 



CRT by North Star 



North Star Computers, Inc., 
manufacturer of the HORIZON 
computer, now offers a 24 line by 
80 character CRT display ter- 



minal for use with the HORIZON 
computer. The CRT terminal, 
manufactured under agreement 
with SOROC Technology, can be 
connected to the HORIZON with 
I/O port at baud rates up to 9600 
baud. A 90-day limited warranty 
is honored by SOROC. 

The HORIZON is a complete, 
disk-oriented computer with a 4 
MHz Z-80A processor, 12-slot 
S-100 motherboard, 16K byte 
RAM, one or two Shugart mini- 
floppy disk drives and a standard 
serial I/O interface. Expansion to 
three drives and more than 64K 
RAM is possible. A version of 
North Star's extended disk 
BASIC is included with each 
HORIZON. 

Prices: SOROC IQ 120 Ter- 
minal (assembled only) $995; 
HOR1ZON-1 (single disk drive) 
computer: kit $1599; assembled 
$1995. HORIZON-2 (dual disk 
drive) computer: kit $1999; 
assembled $2349. 

North Star Computers, Inc., 
2547 9th Street, Berkeley CA 
94710. 



Thinker Toys Econoram III. 




HORIZON and CRT. 



14 



Introducing Intertec's SuperDEC 



TM 




AFTER 




The LA-36/DECwriter II 

A 300 Baud teleprinter with no features. 



Intertec's SuperDEC™ 

A 1200 Baud teleprinter with many features. 



Can you see the $395 difference 



*> 



While we'll admit the difference in ap- 
pearance between the DECwriter II and 
our new SuperDEC is difficult at best to 
see, the difference in performance is as- 
tounding! The SuperDEC is our new 
Throughput Optimizer designed to be 
easily installed in your existing 
DECwriter II teleprinter. Not only can 
our SuperDEC Optimizer increase the 
print speed of your DECwriter II by 
as much as six times its original speed, 
it also gives you the features offered 
only by our famous SuperTerm tele- 
printer. Features you couldn't get on 
your DECwriter until now. 

You've undoubtedly already heard of 
our SuperTerm. It's the 1200 baud 
teleprinter that has been replacing 
DECwriters by the thousands. And 
while you may have purchased your 
DECwriter prior to the introduction 
of our state-of-the-art SuperTerm, you 
can now have all of the SuperTerm's 
incredible features without having to 
throw out your DECwriter. 



For just $395 you can throw out the 
guts of your DECwriter and install the 
brains of our SuperDEC Throughput 
Optimizer. The SuperDEC Optimizer 
is designed to replace the digital elec- 
tronics in your existing DECwriter II. 
In less than five minutes, your DEC- 
writer can be transformed into a Super- 
DEC. The SuperDEC Optimizer is com- 
pletely "plug-compatible" with the 
cables in your DECwriter. The only in- 
stallation tool required is one that we 
give you— a screwdriver. Just pull out 
the guts and screw in the brains. No 
special technical skills are required. 
And if you get bored watching your 
DECwriter print faster than you can 
read, the old digital electronics may 
be reinstalled in a matter of minutes. 
It's really just that simple. 

While speed will be the most obvious 
personality change in your DECwriter 
when equipped with our SuperDEC 
Optimizer, there are many more subtle 
changes you will begin to notice. 



With the SuperDEC Optimizer installed, 
you will have such nifty features as bi- 
directional printing, manual and auto- 
matic top of form, full horizontal and 
vertical tabs (addressable and absolute), 
adjustable right and left margins, an 
RS-232C interface, a double wide char- 
acter set and up to 32 user program- 
mable characters. You can also add an 
APL character set, selective addressing 
and an answer back feature at nominal 
cost. 

Every SuperDEC Throughput Optimizer 
carries a full one year warranty on all 
parts and workmanship. But our com- 
mitment to excellence in service goes 
beyond the warranty. Intertec can also 
offer on-site service contracts for all of 
your upgraded SuperDEC equipment. 

So, when you're ready to "pull out the 
guts and screw in the brains", contact us 
at one of the numbers below and we'll 
give you the name of your nearest 
SuperDEC dealer. He'll show you what 
a difference $395 can make. 



INTERTEC DATA SYSTEMS 



121 



Corporate Headquarters Eastern Regional Marketing Western Regional Marketing 



1851 Interstate 85 South 

Charlotte. North Carolina 28208 

704/377 0300 



1 9530 Club House Road 

Gaithersburg. Maryland 20760 

301/948 2400 



17952 Sky Park Blvd 

Irvine California 92714 

714/957-0300 





Infinite's MFIO-1. 



Some of Infinite Inc's software. 



Infinite Software 
and New I/O Board 



Infinite Incorporated, 1924 
Waverly PI., Melbourne FL 
32901, is making available a wide 
assortment of low-cost software 
for the COSMAC 1802 micropro- 
cessor. This assortment includes 
a range of levels from machine 
language to BASIC, a variety of 
applications from mathematics 
to music and a selection of media 
from listing to cassette cartridges. 
All software packages will in- 
clude comprehensive user in- 
structions. 

Infinite publishes a software li- 
brary list that is updated monthly 
and contains a description of all 
packages released to date. The 
company also designs and 
markets the UC1800 series of 
1802-based microcomputers. 



Infinite also announces the 
first in a series of 8080-oriented 
products, the MFIO-1, an S-100- 
compatible general-purpose I/O 
board containing a major portion 
of all circuitry required for a 
complete microcomputer. 

The product comes in three 
versions— assembled and tested 



($282), complete kit ($234) and 
bare boards ($49). Set of 2 
ROMs, $65.95. 



Veetor Graphic Introduces 
Bit Streamer I/O Board 



Vector Graphic's Bit Streamer 
design concept combines two 
parallel input and output ports, 
and a serial I/O port using an 
8251 programmable USART. 
Communications with board cir- 
cuitry is accomplished by the 
CPU. One parallel port also can 
be used as a keyboard input port. 
The USART is designed to inter- 
face easily to an S- 100 bus struc- 
ture and is capable of being con- 
figured for a wide variety of com- 
munication formats. 

The Bit Streamer, priced at 
$155 kit, $195 assembled, has 
been designed for ease of con- 
struction. Without changes to the 
pre-jumpered options, the board 
can be installed in a computer and 
will operate as an RS-232 serial 
port using the initialization and 
I/O software on the Vector 
Graphic option C PROM. 

Technical data covering the 
"Bit Streamer" I/O board and 
other products may be obtained 



U5 



-J.2N-J 









|<8IB2 



hoi 



\ 




The Vector Graphic Bit Streamer. 



from Vector Graphic, Inc., 790 
Hampshire Rd., A-B, Westlake 
Village CA 91361. 



BPI Intensifier 
Multiline Buffers 



A single BPI Model 8 multiline 
buffer permits CRTs and other 
RS-232C compatible terminals to 
be located up to several thousand 
feet from the computer without 
the use of modems. The Model 8 
includes eight fully buffered 
lines; the Model 18 includes 18 
fully buffered lines. 

Single-quantity price for the 
Model 8 is $149— $46 more for 
the Model 18. All units carry a 
full-year warranty. 

BPI Electronics, Inc., 4470 
S.W. 74 Ave., Miami FL 33155. 



EPA Compiler BASIC 

Electronic Product Associates, 
Inc., 1157 Vega St., San Diego 
CA 92110, announces the new 
EPA Compiler BASIC. You can 
use it to build business ap- 
plications, with decimal arith- 
metic for penny amounts up to 



$99,999,999.99 formatted out- 
put, strings and multiple disk file 
I/O. Long variable names aid 
program maintenance. Packaged 
applications can't be stolen 
because you don't need to sell the 
source. Compiled size of applica- 
tion programs is about 50-60 per- 
cent the size of the source; this 
adds up fast on big programs. 

EPA Compiler BASIC'S 
speed, floating point, PEEK/ 
POKE and I/O allow many con- 
trol programs to be built in some- 
thing other than assembly lan- 
guage. ROM-able code generated 
by the compiler can be placed in 
your micro and forgotten. 

Program generation uses what- 
ever text-processing system is 
available. The compiler processes 
this text and produces an inter- 
mediate file assembled using the 
EPA assembler. The assembler 
output is loaded with the BASIC 
run-time package, and away you 
go. EPA Compiler BASIC is 
priced at $250 and is available 
from stock. 



6800 Object Code Relocator 



Technical Systems Con- 
sultants, Inc., PO Box 2574, W. 
Lafayette IN 47906, now has a 
machine-code relocator for the 
6800 microprocessor. This pro- 
gram gives you the capability of 
moving assembly-language pro- 
grams from one area in memory 
to another. A special feature is in- 
cluded that allows loading a 
Motorola MIKBUG format tape 
directly into any part of RAM. 
This means programs located on 
tape where no RAM is available 
may still be loaded. 

Use of the relocator requires a 
knowledge of where the program 
to be moved starts and ends and 
all places in the program that con- 
tain data as opposed to ex- 







m 




BPI Intensifier. 



16 



ecutable code. All references to 
locations outside a range 
specified by the user will be left 
unchanged so that calls to 
monitor routines or other exter- 
nal routines will be properly 
relocated. 

The price of $8 includes a com- 
mented source listing, object 
code listing and a comprehensive 
user's manual giving several 
samples of use of the package. 



Compact New Power Supply 



Forethought Products, maker 
of the KIM to S-100 interface/ 
motherboard "Kimsi," has an- 
nounced the new Kimsi-Plus 
Power Supply, housed in a single 
high-quality unit. Designed 
specifically to power a full Kimsi 
system (including KIM, Kimsi, 
and eight S-100 boards), it could 
also power any S-100 system with 
8 to 10 motherboard slots. 

Measuring &Vi x AVi x 5Vi 
inches, the supply is mounted on 
a heavy-gauge open-frame type 
chassis, which allows either built- 
in or stand-alone operation. Its 
16 Amp transformer and 30 Amp 
rectifier allow the unit to deliver 
full output without forced air 
cooling, which other high-output 
supplies may require. 

The Kimsi-Plus Power Supply 
is available for $69.50 kit or $89 
assembled. 

Forethought Products, PO 
Box 8066, Coburg OR 97401. 



ACI-33 Cassette Interface 






The ACI-33 is a simplified 
audio cassette interface designed 
primarily for the SWTP 6800, the 
control interface and a terminal. 
The unit will also operate with 
any RS-232 terminal and com- 
puter serial I/O that can supply 
+ 5 V, and ± 12 V for the RS-232 
interface. When used with the 





VDB-l Video Display Board. 



Tele Speed Model 81 Printer. 



SWTP, the ACI-33 supports all 
functions of the control inter- 
face, including loop-current 
teleprinter applications. 

The ACI-33 uses the self- 
clocking redundant Manchester 
scheme of encoding, sometimes 
called Kansas City Standard. The 
two logic states are represented 
by a specified number of cycles of 
1200 Hz and 2400 Hz, which are 
precisely written and read from 
the tape. 

To use the interface, it is only 
necessary to plug it into an un- 
used I/O slot on the motherboard 
(for power), plug the terminal 
that was connected to the control 
interface into the connector pro- 
vided on the ACI-33, and the con- 
nector from the ACI-33 cable in- 
to the control interface connec- 
tor. The audio cassette recorder, 
Auto-Manual switch and data in- 
dicator are connected to another 
connector provided on the top 
edge of the printed circuit card. 

The LED Data indicator shows 
the presence of carrier and data. 
The switch is used to provide the 
signal to the data path control cir- 
cuit to choose either data from 
the terminal or data and clock 
from the tape or auto computer 
control. These controls can be 
mounted remotely at the terminal 
or recorder for convenience. 
Price, $59.95. 

Personal Computing Com- 
pany, 3321 Towerwood Drive 
Suite 101, Dallas TX 75234. 



Circuit Board for VDB-l 



F&D Associates have arranged 
with Alfred Anderson to supply a 
printed circuit board for his 
VDB-l Video Display Board. 
F&D's board is plug-in compati- 
ble with the SWTP 6800. It is also 
compatible with any 6800 or 6502 
based uP. Display format is two 
pages of 16 lines x 32 characters. 
Software is included for scroll- 
ing, screen erase, etc. The board 
has provisions for Pixieverter or 
direct video, and on-board regu- 
lation. The bare VDB-l board, 
software and documentation is 
$29. Add $2.50 per order S/H. 
(Documentation only, $5 post- 
paid; refundable with order.) 
Ohio residents, add 4 percent tax. 
F&D Associates, 1270 Todd Rd., 
New Plymouth OH 45654. 



New Tele Speed Printer 

Tele Speed Communications, 
Inc., PO Box 647, Syosset NY 
1 1791 , is offering a new, inexpen- 
sive dot-matrix serial-impact 
printer. 

The Model 81 Printer is an 80 
cps, 80+ column, bidirectional, 
asynchronous printer, complete 
with electronics, power supply 
and cabinet. The printing 
medium is friction-fed pressure- 
sensitive paper. A ribbon 
mechanism and a tractor 
mechanism are optional. 




The unit's paper advance and 
carriage are stepper motor driven 
permitting the unit to be used for 
graphics or as a plotter under 
microprocessor control. 

The Model 81 Printer with 
parallel ASCII interface is $615. 



Organized Protection for 
Diskettes 



Alpha Supply Company an- 
nounces the KAS-ETTE/10 
Library Case, which provides an 
ideal way to handle diskettes 
while in use, permanently store 
diskettes or safely ship several 
diskettes. The case is made of 
durable molded plastic and looks 
like a leather-bound book — 
available in blue or beige. 




Kimsi-Plus Power Supply. 




ACI-33 Cassette Interface. 



The KAS-ETTE/10— open and 
closed. 



When open and in use, a 
molded plastic insert provides 
pop-up convenience for locating 
the desired diskette. Flexible fan 
tabs hold diskettes securely in an 
upright position, which assures 
that diskettes will be protected 
from warping. When used as per- 
manent storage, the library case 
protects diskettes against dust 
and humidity. Color-coded labels 
applied to the spine of the library 
case permit users to organize a 
permanent library. 

Alpha Supply Company, 
18350 Blackhawk St., Northridge 
CA 91326. 



17 



tP**T£% 



MITE Printer 
Discontinued 



"Consider a MITE Printer" by 
R. W. Burhans {Kilobaud No. 
11, p. 38) has created quite a 
furor. As a result of this article, 
MITE Corp. has been inundated 
with phone calls from hobbyists 
all over the eastern seaboard. 
However, we regretfully inform 
you that the MITE Printer line 
has been discontinued and con- 
templation of reproducing the 
printers in the future is negative. 
The residual stock for these 
printers is currently in the posses- 
sion of Expandor, Inc., 612 Beaty 
Road, Monroeville PA 15146, 
(412)373-0300. 

The MITE Corporation would 
appreciate your mentioning these 
facts to your readers. 

Richard A. Ahlers 

Contract Sales Manager 

MITE Corporation 

446 Blake St. 

New Haven CT 06515 



Reprint Material From 73? 



In my function as Librarian of 
S.N.P.C.S., I read both of your 
magazines, Kilobaud and 73, 
thoroughly and enter articles of 
interest in our index. We recently 
accepted your subscription offer 
for 73 which included back issues 
to January 1976. In indexing the 
back issues, I discovered a pair of 
articles I feel you should consider 
for publication in Kilobaud. I am 
aware of your policy against 
publishing the same material in 
both magazines, but I consider 
these articles an exception. 

I refer to "The Soft Art of Pro- 
gramming," Parts 2 and 3, by 
Rich Didday in issue 193 and 194 
of 73. I feel they are worthy 
because of their treatment of ex- 
ternal files in BASIC in a micro- 
computer/audio cassette 
environment. I am a program- 
mer/analyst with experience on 
IBM 1401, 360/370, and current- 
ly on the General Automation 
18/30 minicomputer in Assem- 
bler, FORTRAN and RPG-II. 
My knowledge of disk and tape 
files is not easily translatable to 
microcomputer/audio cassette 



BASIC files, and I am sure there 
are microcomputer owners with 
less experience who are in the 
same boat. 

Cyrus N. Wells, Jr. 

President 

Southern Nevada Personal 

Computing Society 

We 've had a lot of good material 
in the I/O section of 73 over the 
last two years, and Rich Didday 's 
series rates as some of the best. 
It's so good, in fact, that we have 
already reprinted it in The New 
Hobby Computers Are Here. 
This book is available for $4.95 
from Kilobaud and contains, in 
addition to Rich 's series, 21 ar- 
ticles on numerous aspects of 
hobby computing. — John. 



KIM-1, ACT-1: The Scene 



I recently purchased a Micro- 
Term, Inc., ACT-1 TTY replace- 
ment terminal and, after resolv- 
ing some interfacing problems, I 
have it running with my KIM-1. 
Hookup data supplied with the 
unit is very general and I would 
like to share my experience with 
other KIM-1 users. 

After making all the external 
connections and one internal 
change per the user's manual, I 
was unable to get the ACT-1 run- 
ning. I made a few phone calls to 
Micro-Term, but the results were 
still negative. The people at 
Micro-Term, although very co- 
operative, were unfamiliar with 
the KIM-1. I finally got up 
enough courage to experiment. 
The results that worked are 
shown in the table. 

Part of the confusion comes 
from the serial output level mark- 
ing on my board (ACT-1, 4-77, 
REVD). It is wrong according to 
Micro-Term. The only other 
problem was an unsoldered key- 
switch. I could not get one char- 
acter to print. After soldering the 



connections, everything was fine. 
I have the baud rate set at 1200 
and have had no problems using 
the system at this rate. The screen 
will fill completely in about 20 
seconds. I can display a little 
more than 256 bytes (one KIM 
page) for each memory dump. 
This includes the start address 
and format characters plus the 
ending line, which uses up some 
of the space. (My SX70 camera 
works fine for making a hard 
copy of the program if I want 
one.) By setting the interrupt vec- 
tors at 17FA-FF to 1C00, I was 
able to use the ST key to stop the 
run and examine it at any point. 
Typing RETURN (after ST) and 
then Q again when ready started 
the run at the last address indi- 
cated after RETURN was typed. 
This worked only when the end- 
ing address at 17F7-F8 was set at 
2000. 

Micro-Term has done a good 
job on the ACT-1, and I recom- 
mend this unit to anyone plan- 
ning to include a serial TVT ter- 
minal in his system. I hope that 
other users derive the same enjoy- 
ment from using the ACT-1 that I 
have. 

Chuck Carpenter 
Carrollton TX 



Plea for 6800 Operating System 

I first became a reader of your 
magazine in July 1977, and was 
so impressed that I simply had to 
order all back issues. There are 
not too many magazines that I 
read completely — cover to cover 
— but yours is one. 

That's the good news. Now for 
the bad! I recently built the 
Motorola MEK D2 kit and, in the 
course of familiarizing myself 
with its operation, became aware 
of the need for an improved mon- 
itor. So ... I began to read, in 
depth, all articles dealing with 
monitor systems in the various 
magazines in my bookshelf. 

The first two issues of Kilo- 
baud contain the start of the de- 
velopment of such a monitor 
(would you believe for the 6800?), 
which is coming along nicely in 
issue No. 2. The series, entitled 
"Practical Microcomputer Pro- 
gramming," is written by John 
Molnar. At the end of Part 2, he 
promises that Part 3 will go into 



Internal Connection 

Serial Output Level 
Serial Polarity Out(put) 
Serial Polarity Input 



Connect To 

P 
Invert 
Unchanged 



his system in some detail — in- 
cluding a listing of his monitor — 
and there the matter ends. Part 3 
merely details comparisons be- 
tween assembly language, inter- 
preters, compilers, etc. 

So here I am, cut off in mid- 
stream! Whatever happened to 
the concluding article? Why did 
you hold out the promise of such 
a feast to come, and then, when 
you had me drooling at the mouth 
at the thought of all those deli- 
cacies, merely serve up hamburg- 
er? Without that final article, 
Part 2 of the series is as noth- 
ing .. . like getting absorbed in 
an exciting mystery novel, only to 
find that the last 50 pages are 
missing. You have to get John to 
write that promised article as 
soon as possible, before I die of 
frustration. Here's hoping to see 
it in print SOON. 

Bob Jones 

Abbotsford BC 

Canada 

We'll try to get our good friend 
John to put the finishing touches 
on that project, Bob, but if he 
can't make it, we've got some 
similar material in the works that 
you '11 find of interest. —John. 



A Back Issues Snapper-Upper 



I'm writing to express my ap- 
preciation of the professional, 
objective, yet lucid and down-to- 
earth style of Kilobaud. As an in- 
terested but bewildered novice, I 
find most computer magazines 
abstruse (or obtuse), or philo- 
sophically overblown. But 
Kilobaud — ah! I'm snapping up 
all the back issues I can lay my 
hands on. 

Just finished the November 
issue, and found out that you had 
already published a couple of 
broadsides against problems in 
the industry that I had been 
meaning to froth about. I refer, 
of course, to your articles about 
salesmanship and advertising by 
Ken Barbier and Sheila Clarke. 
Clarke's piece was intelligent, 
constructive, and precisely to the 
point. Barbier is far better house- 
broken than I am. 

It is a pity, really, to realize 
how many little companies are 
going to go under because of inef- 
fective advertising and lacka- 
daisical sales reps. I think a good 
many people are in the business 
because they like computers. It's 
not enough. 

As a consumer, I am eager to 
buy, but reluctant because I 
remember the calculator price 
drops of yesteryear. After seeing 
the Apple-II, the PET, and the 



18 



TRS-80, I wonder what will hap- 
pen next. 

I think a lot of people like me 
are buying Kilobaud and waiting 
for a big price drop. I think a few 
words on the subject might have a 
sizable effect on sales. But, being 
a novice, I don't really know. 

I do know that, like the average 
guy, I am bored with pictures of 
little gray boxes and circuit 
boards, and articles on how to 
acronym my phase-modulated 
Macroach to make my BVDs 
transparent. I am motivated by 
color and pictures of nice-looking 
people interacting with com- 
puters and enjoying themselves. 

Yup, I'm a slob— but not a 
complete slob (I read Kilobaud, 
don't I?). After I realized that 
computers were a possible way of 
expressing human feeling and 
caring, I realized that I had a 
solution to a professional prob- 
lem. So, after getting turned on 
by the humanistic computer 
mags, I switched to Kilobaud for 
information and ideas, and to a 
very different perspective. 

I'm a teacher of the deaf. I pro- 
gram computers through defec- 
tive modems. My debugging and 
troubleshooting routines would 
drive a normal programmer 
crazy. I am good at my work, but 
1 am never going to be good 
enough. I will snap up anything 
that makes me more effective; I 
will spend any amount of my own 
money — but I will not spend one 
penny unless I understand a 
system and know exactly what it 
can do. 

The article about MAXI-Basic 
{Kilobaud No. 10, p. 78) is a case 
in point. The complaint was 
valid — it's picayune to complain 
about a language that suits its 
function because you're not used 
to it. All the same, a corporation 
president has certain responsi- 
bilities to his company. He's not 
supposed to stand up and tell 
everyone his customers are com- 
plaining about his product. He's 
supposed to jump at the chance to 
describe ms product . . . explain 
how it is new and powerful and 
different from anyone else's 
. . . tell about the wonderful 
things it can do . . . inform me, 
impress me, sell me, take my 
money — and get rich. Just so I get 
the facts about MAXI-Basic. 

With the tremendous informa- 
tion gap between hacker and 
novice, getting the right slant on 
editorial and advertising copy is a 
very tough job. I know your 
writers grouse about it. Me, I'm 
no engineer — at least, I haven't 
noticed any hair growing out of 
my forehead lately. I'm learning 
a lot. 

You guys are evidently doing 



something right. I think it's the 
way you go after the application 
in nontechnical terms in the first 
paragraph. Once I know what 
your doohickey is supposed to 
do, I get motivated and curious, 
and I can slog through the heavy 
stuff. Hook your subject to a 
human problem right off, and 
you have me hooked. 

Charlie Heckel 
Glendale CA 

You mentioned in your opening 
paragraph that you're a be- 
wildered novice. I've said it 
before, and I'll say it again . . . 
to some degree, we're all be- 
wildered novices. That is what 
Kilobaud is all about. (Even if we 
aren't "bewildered," there are 
always areas we want to learn 
about.) You're right about those 
opening paragraphs. If everyone 
writing an article would 
remember how important they 
are, my job would be a lot 
easier. — John. 



Exclusive OR 
Mismatches? 



I am in strong agreement with 
the ideas expressed by Russell 
Lauffer in his article on logic 
diagram conventions in the 
December 1977 issue of 
Kilobaud. Until about six months 
ago, I too was naively locked into 
the practice of drawing gates as • 
they appear in the data books. 
However, since I started my pres- 
ent job as an engineer for a well- 
known instrument manufacturer, 
I quickly learned how much 
simpler understanding a complex 
circuit can be using logic function 
drawings. 

Russell states that mismatches 
between inputs and outputs fre- 
quently occur when you use flip- 
flops and XORs. Often, drawing 
the XOR as shown below will 
help, which is, of course, logical- 
ly equivalent to the normal sym- 
bol. 

Don Kinzer 
Portland OR 



o 



7486 



The Systems 
Selling Game, Revisited 



n. 



I subscribed to another "ex- 
perimenter-oriented" computer 
magazine, and the appearance of 
Kilobaud was like a breath of 
spring air after a hard, cold win- 
ter. Although I've had limited 



training in FORTRAN and CO- 
BOL, my main background is in 
statistics, accounting and man- 
agement analysis. I also subscribe 
to 73 Magazine, but there seems 
to be little time to keep up to date 
on the inner workings of the 
"black boxes" and circuit boards 
that make up modern micropro- 
cessors. It is from this back- 
ground that my comments are 
based. 

Two months ago, while in New 
England, I rented a car and drove 
to the nearest Computer Retail 
outlet in order to view first hand 
some of the various systems. My 
experiences were not unlike those 
of Ken Barbier (Kilobaud No. 1 1) 
— and I too had a substantial sum 
of money burning a hole in my 
pocket. It appeared that neigh- 
borhood kids playing computer 
games and previous customers 
using the salesperson's time to 
debug programs had priority over 
new customers. After a two-hour 
freeway drive, I too was "dying" 
for a cup of coffee. 

Finally, after I persevered (plus 
was somewhat forceful) for over 
an hour, a demonstration was ar- 
ranged. Unfortunately, because 
the kids still had priority over new 
customers, the only system 
"available" for demonstration 
was the Apple-II. None of the 
systems that specifically inter- 
ested me were connected for 
demonstration — or they were out 
of stock. 

It is worth mentioning that 
three friends who had no pre- 
vious exposure to microproces- 
sors accompanied me on this trip. 
Accordingly, I requested a pep 
talk and explanation of what 
microprocessors could do — be- 
sides being fancy games ma- 
chines. It never really material- 
ized. In this situation, a sales 
pitch and demonstration of ap- 
plications such as those discussed 
by Sherman Wantz (Kilobaud 
No. 11) might well have in- 
terested my three colleagues. The 
net result was that I left the store 
with a brochure on the Apple-II 
(for further study), and my three 
companions left wondering who 
would be crazy enough to spend 
that kind of money on a fancy 
games machine. 

The above experience served to 
personally underscore what Kilo- 
baud has been expressing for the 
past few months: Poor salesman- 
ship is losing sales to new po- 
tential hobbyists and businesses 
(my main interest). 

In Kilobaud No. 13, Wayne 
Green raised a question about 
systems for the small business. 
Having recognized this potential 
some time ago (given my pre- 
viously stated background), it 



was obvious to me that the first 
requirement for selling a business 
system is to become a proficient 
programmer in BASIC, up to and 
including disk operating systems. 
As a starting point, my concept 
of a small-business system would 
consist of a video terminal, mini- 
mum of 16K RAM, room for pos- 
sibly another 16K RAM, ability 
to control two cassettes for exter- 
nal storage/backups, an impact 
printer, a form of extended 
BASIC (preferably in ROM) and 
add-on capability for up to three 
disk drives. Other desirable fea- 
tures would be ability to accom- 
modate more than one video ter- 
minal as an input device (time- 
sharing), and possibly one or 
more printers (dot matrix accept- 
able). Finally, 9-digit precision in 
computations would be desirable 
if any statistical analysis 
packages were to be developed 
for business applications. 

I have previously worked in the 
enhancement and development 
of large management-informa- 
tion systems. The basic principles 
that apply — whether selling to 
large or small business — are suc- 
cinctly summarized in the open- 
ing sentence of Robert Brehm's 
article in Kilobaud No. 13. 
Ironically, initial sales to 
businesses are based upon book- 
keeping needs — providing timely 
and accurate financial informa- 
tion — yet, as systems are imple- 
mented and accepted by business, 
the emphasis often shifts to 
"fringe" benefits such as 
improving customer service. 

For example, with the PAC 1 
system described in the above ar- 
ticle, it might be desirable to ex- 
tend the data files to summarize 
previous patient history, pre- 
scriptions, etc., which can be re- 
viewed in the morning for those 
patients who have appointments 
that day. This latter comment 
should not be construed to "pick 
holes" in a well-written article, 
but rather to reinforce the depth 
of analysis and programming 
needed to sell a good system to a 
business. 

Although some "canned" pro- 
grams can be mass-produced and 
sold for small-business applica- 
tions, it is doubtful that their ap- 
plication will be useful for firms 
employing more than five people. 
For larger firms, such as automo- 
bile dealers, contractors and re- 
tailers, the applications programs 
will have to be tailored to suit the 
needs of the particular business. 
The expertise to accomplish this 
is unlikely to originate in com- 
puter retail outlets as they exist 
now. More than likely it will 
originate in persons who have a 
mixed background in computer 



19 






programming and business/ac- 
counting. 

In addition to producing finan- 
cial statements, computers could 
be useful to small business in the 
following areas: 

• monitoring status of purchase 
orders and accounts payable; 

• control of inventories and re- 
order points; 

• data on suppliers, parts 
stocked, time to process orders; 

• sales and expense analysis; 

• customer-service data; 

• scheduling workloads; 

• on-job training aids; 

• formatted sales slips, purchase 
orders, etc.; 

• text editing. 

The last point cannot be over- 
emphasized. Have you ever seen a 
secretary, after having carefully 
typed a long, important letter, 
come out of the boss's office tear- 
ing her hair out because he decid- 
ed to change a word or two — and 
he wanted the letter out an hour 
ago? Conversely, have you been 
the recipient of a letter that is 
marred with correcting fluid? 
Besides, who would want to 
receive a letter typed by a dot 
matrix printer? I suspect that a 
Selectric-style printer with a 
business system that incorporates 
text editing would be a useful sell- 
ing feature to small businesses 
(fringe benefits again). Unless 
I've missed the boat, or misread 
the fine print, such items just 
don't come with existing micro 
systems. Oh yes, while on the sub- 
ject of text editing— remember 
Bill McLaughlin's article in 
Kilobaud No. 12, "ALL 
CAPS"? 

A comment recently made in 
Kilobaud that small businesses 
can afford to spend $11,000- 
$12,000 for a microprocessor sys- 
tem may be true; but I would fur- 
ther modify this by saying: 

I. It must be a system — hard- 
ware and software. The software 
portion must be tailored to meet 
the specific needs of the owner, 
and the ability to recognize and 
incorporate fringe benefits to suit 
the owner may be a key selling 
point. I estimate my time is worth 
$2000-$4000 to do an adequate 
analysis and related program- 
ming. 

2. The system must be reliable 
in operation and aesthetic in ap- 
pearance. If a system is down, it 
must be brought up again in mini- 
mal time — no rewiring circuit 
boards to interface components 
that didn't match originally. 
Such bargains are fine for hob- 
byists, but have little place in the 
selling of a business system. 

3. Other costs such as service 
contracts, staff training and pro- 
gram debugging must also be 



considered in the sale of such 
systems. 

After all considerations are 
summed up— and the above 
points only scratch the surface- 
perhaps $5000-$7000 is left for 
expenditure on hardware. 

I do not intend to delve more 
deeply into the whys and where- 
fores mentioned above because 
many supporting points have 
been made directly or indirectly 
in past issues of Kilobaud. To 
summarize— I'm still looking for 
a good system that meets the 
forementioned requirements, 
that can be used to develop my 
programming expertise and that 
will serve as a model to sell to 
business. Until that system ap- 
pears, I will probably com- 
promise on a system to gain the 
necessary programming experi- 
ence and, I hope, resell it to a new 
hobbyist "convert" at some 
future date. Meanwhile, until 
such systems are produced, my 
short term forecast is that Radio 
Shack's TRS-80 is going to cause 
hard times ahead for outlets that 
are geared mainly to the hobbyist 
market. 

Ted King 

Slemon Park PEI 

Canada 

/ recently heard a one-minute 
radio spot for IBM that expound- 
ed on IBM's small-computer sys- 
tems for small businesses. There 
aren 't many companies that can 
afford a nationwide advertising 
campaign such as that (if it is, in 
fact, nationwide). You can bet 
that as time goes by, the sales- 
manship demonstrated by the 
computer stores across the coun- 
try (and in Canada) will be the de- 
termining factor between success 
and failure. Star Trek is fine . . . 
in its place!— John. 



Articles on 
Network Communications 



On page 17 of your January 
issue, you have an ad for a com- 
munications adapter. I would like 
to see some articles evaluating 
products such as this one. Also, 
articles on acoustical couplers 
and modems would be appreci- 
ated. 

I believe data communications 
is an up-and-coming part of data 
processing the more I talk to 
microcomputer owners — they all 
have some plan to put their sys- 
tems to productive uses, rather 
than just using them as toys. 

I would like to see a question- 
naire asking what percentage of 
owners' system design was dedi- 
cated to play, and what percent- 



age to production. If sufficient 
time were spent designing it, such 
a questionnaire could be broken 
down further. 

Paul Krammin 
Santa Rosa CA 95402 

We have some good material 
coming up on this exciting sub- 
ject, Paul. One of the earliest will 
be a review on such a communica- 
tions adapter (by Russell Adams). 
— John. 



If 



ritLISIIEKVS 
REMARKS 

(from page 4) 

in, say, Kilobaud. The article 
would reach at least 100 times 
more people . . . would result in 
a lot more prestige. Not only that, 
but Kilobaud PAYS for all ar- 
ticles, and pays very well. 

Unless the person running the 
show intends to publish the paper 
for his own personal profit, there 
should be no objection to having 
a paper submitted for a show and 
also having it submitted for possi- 
ble publication in a magazine. 

With the average article pulling 
between $100 and $300, authors 
of papers are making quite a do- 
nation to computer shows when 
they give their hard work free of 
charge; it's the same as donating 
the cash. Many computerists 
would like to add a little extra 
memory or an I/O board to their 
system . . . instead they give 
away the money that could buy 
them. A recently published book 
of donated papers ran to over 300 
pages . . . amounting to about 
$12,000 in donations from the 
authors of the papers. The book 
sold for $12, thereby bringing a 
very handsome profit to the pub- 
lisher, all at the expense of the 
authors. Why should so many 
people spend all that time and ef- 
fort just to help make one person 
wealthy? 



Reward! 



Most businesses have a prob- 
lem with employees wasting 
money on phone calls. Some 
make personal calls at the com- 
pany's expense; some pick up the 
phone for any minor problem, 
where a short letter or note by 
mail would suffice; some make 
legitimate calls, but don't know 



how to stop talking. A micro- 
computer system can help with 
this situation. 

We need a board to plug into 
the S-100 bus that will check all of 
the phone lines and record the 
numbers called, the date and time 
of the call, the length of the call, 
etc. It would also be helpful if the 
system could record the extension 
of the calling phone and perhaps 
a customer number. With a look- 
up table of toll rates vs time to 
different areas, the system could 
even make a fairly good estimate 
of the cost of each call. You 
might also build in a lookup table 
of customers vs phone numbers. 

All this information would 
then be printed out either in real 
time or at the end of each day for 
a record. 

The electrical end of this 
shouldn't be too difficult . . . but 
the program to put it together 
might take a while. As an impetus 
— if you are interested in develop- 
ing such a system, I have an outfit 
that will put down $2000 for the 
prototype board and operating 
system . . . plus 5 percent royal- 
ty on the sales. Since just about 
every business that buys a micro- 
computer would probably want 
to add this board and system to 
its computer, the sales could be 
substantial. 

Time is important. You might 
come up with a fantastic system 
in eight months, but the lesser 
system, already on the market in 
six months, could kill you. If 
you're going to try this one, get 
cracking. 



EDITOR'S 
REMARKS 

(from page 5) 

owners have the closest thing to a 
slick magazine (all your own) that 
I've ever seen. Harold Zallen will 
be publishing the ICCD Journal 
four times a year at a subscription 
cost of $18. (Kind of steep . . . 
but it has some good material and 
is very professionally prepared.) 
ICCD, PO Drawer 2790, Nor- 
man OK 73070. 

Robot Builders. If you're even 
a little bit interested in robotics, 
then by all means drop a line to 
Michael Westvig, 208 Via Color- 
in, Palos Verdes Estates CA 
90274. Send him an SASE for 
more information. 

IMP-16 Owners, unite! Fred- 
erick R. Holmes, 101 Brookbend 
Ct., Mauldin SC 29662, is pub- 



20 



lishing a newsletter for you folks 
interested in home-brewing 
IMP-16 systems. (In addition, 
you should get a subscription to 
National Semiconductor's Com- 
pute. Compute/208, National 
Semiconductor, 2900 Semicon- 
ductor Dr., Santa Clara CA 
95051.) 

Micro. Now all of you 6502 
owners can band together in a 
grand conspiracy . . . through 
the pages of Micro. Robert Tripp 
(who formerly put out The Com- 
puterist) has a great semi-maga- 
zine going here, directed toward 
all 6502 owners (Apple, KIM, 
OSI, PET, Jolt, Data Handler 
and more). The cost is $6 per year 
(6 issues) and I think you'll find it 
worthwhile. Micro, 8 Fourth 
Lane, So. Chelmsford MA 01 824. 
(And ... if you're among the 
6502 group, you should certainly 
be getting the "KIM-1/6502 User 
Notes" from Eric C. Rehnke, 109 
Centre Avenue, W. Norriton PA 
19401. $5 for six issues . . . and 
check into getting the back issues!) 
The Computer Hobbyist. It's 
alive and well! Bill McLaughlin 
may not know how to spell hob- 
byist (hobbyiest), but he sure puts 
out a neat newsletter! About all I 
can say is that it covers a wide 
range of topics and should be of 
interest to just about anyone (it's 
subtitled "The 2650 Computer 
User Notes" but really has a lot 
of general-purpose information 
.... and I hope he keeps it that 
way). I couldn't find the price! 
(The Computer Hobbi[e]st, Box 
158, San Luis Rey CA 92068.) 



I 






(from page 13) 

circuitry, including equations for 
setting the circuits to the time and 
frequency that the reader re- 
quires. 

IC Timer Cookbook's appen- 
dixes include manufacturers' 
data sheets for the devices 
covered in the book and a second- 
source guide. Finally, the book 
contains a "Bibliography of IC 
Timer Design Ideas." Basically, 
this is a list of articles from 
various professional electronic 
magazines that have covered IC 
timers. This is a nice feature if 
you have access to the magazines 
listed. 

As in his other cookbook, Jung 
has included references to useful 



data sheets and application notes 
for the reader who requires more 
information on certain ideas. 
You have only to look through 
this book to see what an impor- 
tant part the IC timer plays in to- 
day's electronic circuitry. 

I suggest that you take a look at 
this book and see if it would make 
a worthwhile addition to your 
book collection. It is a good selec- 
tion for both those who use IC 
timers and those who want to. 

Michael Black 

Montreal Quebec 

Canada 




(from page 7) 

concepts. It is a mandatory re- 
quirement that copies be de- 
posited with the Library of Con- 
gress within three months after 
publication. The Copyright Law 
provides for fines i f the deposit of 
two complete copies is not made 
within such time. However, ex- 
ceptions can be made for material 
the Library of Congress neither 
needs nor wants. 

Registration with the Register 
of Copyrights is not mandatory. 
However, such registration is a 
prerequisite to bringing a lawsuit 
for the copyright infringement. 
The Register is free to allow or re- 
quire the deposit of printouts of 
computer programs rather than a 
tape or disk. 

It is interesting to note that 
although the Register of Copy- 
rights has been accepting compu- 
ter programs for registration for 
over ten years, only about 1300 
programs have been registered. It 
appears that proprietors of soft- 
ware do not wish to open their 
programs up to the possibility of 
infringement by the public, which 
has access to everything regis- 
tered with the Register of Copy- 
rights. 



Infringement and Remedies 



Anyone who violates any of the 
exclusive rights of a copyright 
owner is an infringer of the copy- 
right. Those exclusive rights have 
been discussed previously. The 
owner is entitled to get an injunc- 
tion prohibiting the offender 
from further infringments, such 
as distributing infringing copies. 
The owner is also entitled to 



damages equal to his lost profits 
plus the profits of the infringer. 
The latter prevents the infringer 
from making money by virtue of 
his wrongdoing. 

In lieu of such actual damages, 
the owner of the copyright can 
elect to receive statutory dam- 
ages, which vary from $250 to 
$10,000 as the court considers 
just. If the court finds the in- 
fringement was willful, the ceil- 
ing on statutory damages ex- 
pands to $50,000. If the court 
finds that the infringer had no 
reason to believe his act was an 
infringement, the statutory dam- 
ages can be reduced to as little as 
$100. In any event, the copyright 
owner receives his court costs and 
attorney's fees from the infringer. 

The Copyright Act also pro- 
vides some criminal penalties for 
willful infringement of copyright 
for the purpose of commercial 
advantage or private financial 
gain. There are also criminal 
penalties for giving fraudulent 
copyright notices, for removing a 
copyright notice or for making a 
false representation with respect 
to registering a copyright claim. 

Where there is a willful in- 
fringement, the infringer is sub- 
ject to having all property used 
for the making of infringing 
copies seized and forfeited to the 
United States. 



Fair Use 



There are some exceptions to 
the rights of a proprietor of a 
copyright. One exception is em- 
bodied in the Doctrine of Fair 
Use. Fair use defies precise 
definition. However, broadly 
speaking, it means that a reason- 
able portion of a copyrighted 
work may be reproduced without 
permission of the author for a 
legitimate purpose that is not 
competitive with the copyright 
owner's market for his work. 
This doctrine most often arises 
when a teacher copies copy- 
righted material for distribution 
to students. 

The courts have generally 
stated that whether a use con- 
stitutes a fair use must be decided 
on a case-by-case basis. The cri- 
teria used by the courts for deter- 
mining whether a use is fair are: 
(1) the purpose and character of 
the use; (2) the nature of the 
copyrighted work; (3) the amount 
and substantiality of the portion 
used in relation to the copy- 
righted work as a whole; (4) the 
effects of the use upon the poten- 
tial market for, or value of, the 
copyrighted work. 
Those factors led me to the 



following observations. If you 
plan to take very short routines 
and subroutines from previously 
copyrighted materials and plan to 
use them to create a program for 
your own computer, I tend to 
think that would be a fair use. 
That assumes the purpose is for 
your own use only and that you 
take a relatively small portion 
from each of the previously copy- 
righted works. If, on the other 
hand, you merely make patches 
between existing routines to make 
them compatible with your sys- 
tem, you have created a deriva- 
tive work, which would infringe 
on the rights of the owners of the 
programs used. 

The bottom line, it appears, is 
that you, as a hobbyist, will have 
to do a considerable amount of 
"reinventing the wheel" unless 
you are prepared to purchase pre- 
viously copyrighted material 
which may then be adapted to any 
individual system. However, that 
adaption is a derivative work and 
cannot be sold by the adapter to 
other hobbyists with the same 
system unless permission is re- 
ceived from the owners of all 
copyrighted materials from 
which the adaptations are made. 
Of course, the adapter is free to 
sell his patches. Then other hob- 
byists can purchase authorized 
copies of the underlying material 
and incorporate the patches. 

It should also be noted that if a 
programmer sat down and wrote 
an operating system for his com- 
puter without the use of any rou- 
tines or subroutines appearing in 
previously copyrighted materials, 
and if the end product were a ver- 
batim copy of previously copy- 
righted materials, there would be 
no infringement. The Copyright 
Law only prohibits copying, it 
does not protect against the in- 
dependent creation of an iden- 
tical work. 

The workings of copyright are 
sure to frustrate the hobbyist who 
tries to maximize utility while 
minimizing costs. But the pur- 
pose of copyright is to give 
economic benefit and protection 
to authors. It makes them very 
happy to know that others cannot 
legally appropriate the fruits of 
their labor. 

In this column I have tried to 
give you, very briefly, an over- 
view of law of copyright. You 
should be aware that there is 
much more omitted from this dis- 
cussion than has been included. 
Don't be your own lawyer based 
on this column. Copyright is a 
complicated area of the law and 
certainly can't be adequately dis- 
cussed in a few pages. If you have 
or think you have a copyright 
problem, see an attorney. 



21 



Kilobaud's Mystery 




are you ready for this? 



Tom Rugg 

Phil Feldman 

PO Box 2485 

Los Angeles CA 90024 



We bet you thought it 
would never stop. Over 
and over again the same scene 
has been repeated: Your new 
issue of Kilobaud arrives and 
you begin to slowly make your 
way through it. What kinds of 
things will you find this month? 
As you flip the pages, you 
find the same old thing— arti- 
cle after article filled with well- 
written, concise, valuable infor- 
mation; clear explanations of 
every conceivable aspect of 
microcomputing; listings of 
fun and useful programs, com- 
plete with easily under- 

22 



standable descriptions of what 
they do and how they work. 

Is this monotony ever going 
to end? Will Kilobaud ever 
change its policy and decide to 
publish something that can't 
be understood? Yes and yes, in 
that order. 

This month, at long last, 
Kilobaud is departing from its 
practice of providing you with 
useful and understandable 
material about the world of 
small computers. Instead, 
you're getting the first (and 
possibly the last) Kilobaud 
Mystery Program! 

The Program 

What does the program do? 
We're not going to tell you; but 
we're glad you asked. There 
are two ways you can satisfy 
your curiosity, which must cer- 
tainly be more than you can 
bear by now. 

First, you can look at the 
Mystery Program listing and 
try to "walk through" it to 
figure out what it will do. This 
might appeal to those of you 



who are incurable problem- 
solvers or masochists. Need- 
less to say, some efforts have 
been made to disguise what it 
does. 

The second approach will 
give you the answer more 
quickly. Find a handy nearby 
computer and run the program. 
Make sure you don't make any 
mistakes when copying the 
program, of course. In par- 
ticular, don't forget to include 
those semicolons at the end of 
some lines. 

You'll discover that the pro- 
gram is even interactive! When 
you run it, it will give you in- 
structions on what to do next. 
Follow the instructions and 
then run it again. Amaze your 
friends! Amaze yourself! Be 
the first on your block! Be the 
first off your rocker! 

Compatibility Notes 

The program was written in 
Altair 8K BASIC and fits in an 
8K machine (along with BASIC 
itself). We didn't use any fancy 
nonstandard techniques, so 



you should be able to run the 
program using other versions 
of BASIC, too. 

The only problem might be 
the use of the CHR$ function in 
lines 800 and 900. The CHR$ 
function provides the ASCII 
equivalent of a decimal 
number. So, line 900 prints the 
ASCII character that cor- 
responds with the decimal 
value in the variable T. If T hap- 
pens to be 65 at the time, an A 
is printed. 

If your version of BASIC 
doesn't have the CHR$ func- 
tion, you'll have to substitute 
either an equivalent statement 
or an equivalent subroutine to 
accomplish the same thing 
that CHR$ does at these two 
places in the program. Most 
versions of microcomputer 
BASIC that we know of have 
either CHR$ or a direct replace- 
ment for it, so this shouldn't be 
a problem for you. 

Well, what are you waiting 
for? Go find a computer! Who 
knows what lurks in the mind 
of Kilobaud? ■ 



110 REM: **** A KILOBAUD MYSTERY PROGRAM **** 

120 REM: FROM THE APRIL, 1978, ISSUE. 

130 REM: BY TOM RUGG AND PHIL FELDMAN 

150 DIM A(42) 

160 FOR J=3 TO 28 

170 A(J)=J+62 

180 NEXT J 

190 FOR J=l TO 10 

200 A(J+29)=J+47 

210 NEXT J 

220 FOR J=l TO 2 

230 A(J)=J+31 

240 NEXT J 

250 REM: NOW IT GETS MORE MYSTERIOUS 

260 A(A(l)-3)=A(A(2))-7 

270 T=0 

2 80 FOR J=l TO 9 

29 T=T+J 

300 NEXT J 

310 A(T-5)=T+1 

320 A(A(T-T+l)+T/5)=T+INT(T/3)+3 

330 T=T-A(2) 

340 J=T/4 

350 A(T*J+2*J)=J*T+(T/J)-1 

410 GOSUB 500 

500 GOSUB 700 

510 READ T 

520 IF TOO THEN 550 

530 GOSUB 700 

540 GOTO 510 

550 IF T<0 THEN 5 80 

560 GOSUB 800 

570 GOTO 510 

580 IF T=-l THEN 12 30 

590 J=ABS(T) 

600 READ T 

610 FOR K=l TO J 

6 20 GOSUB 800 

6 30 NEXT K 

640 GOTO 510 

700 T=A(24)-A(29) 

710 PRINT 

720 FOR J=l TO T/2 

730 GOSUB 900 

740 NEXT J 

750 PRINT 

760 RETURN 

800 PRINT CHR$(A(T)); 

810 RETURN 

900 PRINT CHR$(T) ; 

910 RETURN 

920 DATA -5,1,3,18,20,11,14,1,8,-2,17,14 ,,,*-« 

930 DATA 2,0,22,20,27,1,6,7,14,7,22,11,16,9,1,14,11,16,7,21 

940 DATA 1,39,33,30,1,3,16,6,1,39,34,30,-4,40,-1 

950 DATA 1,3,9,3,11,16,2,0,16,17,25,1,20,7,15,17,24,7,1 

960 DATA 39,32,30,29,1,39,35,30,29,1,3,16,6,1,39,36,30,-1 

970 DATA 20,11,6,6,14,7,-4,40,1,25,10,3,22,42,21,1,3,1,22,10,20 

980 DATA -2,7,1,22,17,7,6,1,21,14,17,22,10,41,0,-4,40,6,7,14,7 

990 DATA 22,7,1,39,37,30,29,1,39,38,30,29,1,3,16,6,1,-2,39,30,-1 

1000 DATA -3,1,10,3,2,1,10,3,2,1,10,3,2,1,10,3,2,1,0,11,42,15,1 

1010 DATA 3,1,5,17,15,18,23,22,7,20,29,1,16,17,22,1,3,1,28,-2 

1020 DATA 17,14,17,9,11,21,22,2,0,4,27,7,-1 

12 30 PRINT 

1240 END 

OK 

The Mystery Program. 



23 



George Young 

Sierra Union High School 

Tollhouse CA 93667 

Bob Grater 

Lockheed Space Systems 

Sunnyvale CA 94086 



Make Your Own 
PC Boards 



start with a universal wire-wrap board 



Hey, this universal wire-wrap 
board looks like something I 
could use. I wonder if anyone 
will ever tell me how to get it 
off the published page and on- 
to a circuit board? 



We hear you! How many 
times have you seen a 
circuit-board layout presented 
with an article, only to find that 
there is no source for the 
board? All you have is that 
layout on the page. 

The average ham or com- 
puter phreak would make his 
own circuit boards if: 1. He 
knew how. 2. It didn't cost a 
small fortune. 3. He didn't need 
a lot of special equipment. 

In the early 1977 issues of 73 
Magazine, there were several 
excellent articles on making 
your own circuit boards. The 
average hobbyist does not 
want to go into PC board pro- 
duction; he only wants to make 
a single board for his own use, 
or maybe one for a buddy. He 
may want to make boards 
utilizing the schematics from 
several different articles and 
be willing to sacrifice perfec- 
tion for low cost and availabili- 
ty. He can't, and won't, spend 
more money for the materials 
to construct circuit boards 



24 



than he would have to spend 
for all the individual boards he 
needs. 

The Artwork 

The preliminary circuit-board 
layout complementing an arti- 
cle is called the artwork. This is 
the circuit wiring and the 
solder attachment points, 
called pads, for all the ICs, 
transistors, resistors, capaci- 
tors, etc. Usually the artwork is 
included with the article, as in 
this case. If no artwork is 
published with the article, you 
might assume that the author 
did not use a PC board to con- 
struct his device. He may have 
used wire wrap, perfboard, or 
some other technique. 

Now, whenever artwork is 
published, we want to be able 
to use it. Therefore, we need a 
method to lift the artwork off 
the printed page so we can 
make our own circuit board. 
However, some precautions 
are in order. Some interesting 
things can happen in the pro- 
cess of getting artwork into 
print. Artwork that is specified 
as full scale (1X or 1:1) may not 
turn out that way. For example, 
a circuit board that I wanted to 
use recently was reproduced in 
the magazine at one-half scale. 
It actually turned out to be 7/16 



scale. To verify the scale, lay 
an IC (14, 16 or 24-pin) over the 
1:1 artwork. If it is full scale, 
fine; if not, we need the 
capability of lifting it off the 
page and reproducing it to full 
scale. 

Doing Your Own Artwork 

The least expensive method 
of doing your own artwork is to 
use graph paper, ruled ten 
lines to the inch, available at 
most stationery stores. Using 
graph paper, you can lay out 
your artwork in 1X, 2X or 4X. 

If you are going to follow the 
PC board reproduction scheme 
outlined in Kilobaud 
Klassroom No. 4 (September 
1977), use a 1X layout. This 
method can be used to lift any 
article from the printed page, 
but I recommend it only for the 
simpler circuit boards. It has 
been used to make the circuit 
boards for the TVT-6L, de- 
signed by Don Lancaster, and 
can be used for complex 
boards, but not easily. If you 
plan to use the layout for 
photographic reproduction of 
the circuit boards, do your art- 
work in 2X or 4X. Then, when 
the artwork is reduced to 1X, all 
the dimensional errors are 
reduced proportionally (for ex- 
ample, 2X to 1X will reduce the 



errors by one half). 

You can use the artwork by 
going directly from the graph 
paper to the photographic film. 
However, you'll need a green 
filter over the camera lens to 
eliminate the green lines from 
the graph paper. I prefer to do 
the entire layout on the graph 
paper in pencil so I can make 
changes with an eraser. Then I 
use a light table (a frosted 
sheet of glass or plastic with a 
light source behind it) with a 
sheet of white paper placed 
over the graph-paper layout to 
produce a high-contrast black- 
and-white drawing. A felt-tip 
pen can be used for the ink 
work, but india ink is better. 
Either will produce a good- 
quality drawing. 

Templates for the pads, ICs, 
etc., can be commercial or 
homemade. Commercial tem- 
plates in 1X or 2X are available 
from Tangent Templates, Box 
20704, San Diego CA 92105. My 
homemade template consists 
of a series of holes drilled in 
1/8 inch Plexiglas, but any thin 
plastic can be used. The graph 
paper provides the locations of 
the pads. 

The whole idea is to sacrifice 
a little on precision and hold 
the cost down. So far, we have 
had to buy graph paper, india 
ink (get Pelikan), and perhaps a 
pen to apply it with. If you have 
to buy an india ink pen, get a 
Rapidograph. It'll cost like 
crazy, but it's a lifetime invest- 
ment. A #2 tip is a good place 
to start. 

You can, of course, spend a 
lot more for material to get the 
work done easier, faster or 
more precisely. These are 
trade-offs that each individual 
must make for himself. 

Using the Published Artwork 

Recently I wanted to use 
some artwork published with a 
magazine article. For years I 
had been transferring the pub- 
lished artwork to the circuit 
board by hand. The time had 
finally come when the circuit I 
needed was too complex for 
this procedure, so I had to 
teach myself how to transfer 
the artwork from the printed 
page to the circuit board. There 
are three methods that Bob 



and I have found successful. 

The first method was 
covered in Kilobaud Klassroom 
No. 4. Simply place your cop- 
per clad under the published 
1:1 artwork, punch the pad pat- 
tern onto the copper clad and 
reproduce the original artwork 
by hand. 

Bob uncovered the second 
method in CQ Magazine (May 
1977, p. 46). You can lift the 
published artwork off the 
printed page using Thermofax 
equipment and overhead- 
projection Thermofax film to 
obtain a black-and-white 
transparency of the artwork. 

The same process is now 
available for use with Xerox 
equipment. A positive 
transparency can be made us- 
ing their 3R459 Transparency 
Film. This material costs over 
$30 per box of 100 sheets. 

The black-and-white film can 
then be used to transfer the 
artwork directly to copper clad 
sensitized with a positive- 
acting photoresist. However, 
most presensitized copper clad 
is sensitized with a negative- 
acting photoresist, and most 
readily available sensitizing 
material comes in the negative- 
acting form. The black-and- 
white Thermofax or Xerox 
positive can be reversed by 
contact printing to produce a 
photo negative for use with 
negative-acting photoresist. 
(More on the contact printing 
process shortly.) 

If the artwork is 1X, if a Ther- 
mofax or Xerox machine is 
handy, and if you can get the 
required copper clad with 
positive-acting photoresist, 
this is an easier method of get- 
ting the artwork lifted off the 
printed page. Otherwise, you 
will need the following method. 

Using Photography to Lift Art- 
work 

Artwork can be lifted off the 
printed page using a graphic- 
arts camera, a special camera 
used in the printing industry. 
The artwork is usually removed 
physically from the magazine 
and placed on an easel, 
vacuum frame or copyholder. It 
is then shot with the graphic- 
arts camera directly onto high- 
contrast film to make a 



photographic negative of the 
original. This is a one-step pro- 
cess for reproducing the photo 
negative and is the fastest way 
to get the job done. It is also 
the most difficult method for 
us to use since we have to 
locate one of these special 
cameras. Many printers and 



lithographic film (available 
from offset printing suppliers) 
can be used, but any good- 
quality film will work. 

After the negative has been 
developed, fixed, washed and 
dried, we can proceed to the 
next step. The enlarger is 
reassembled to its normal con- 




Raw-material source for safelight/oven and developing tray. 



some high schools and junior 
colleges have them, but most 
of us will have to use the pro- 
cess described below. 

A camera and enlarger can 
be used to bypass the graphic- 
arts camera. In fact, we can 
even get by without the 
camera. We will need access to 
an enlarger. To lift any 
reasonably complex artwork 
off the printed page, some 
photographic process must be 
used. Here is a practical way to 
do it. If you have the necessary 
photographic skills, proceed; if 
not, get someone to help. 

The artwork is first shot with 
a photocopy setup such as an 
enlarger with the lamp housing 
removed and a sheet of ground 
glass replacing the negative 
carrier (tracing paper can also 
be used in place of the ground 
glass). 

The artwork is placed on the 
easel and sharply focused on 
the ground glass (which is then 
replaced with a sheet of film) 
and a shot is made. The pro- 
cessed film is a photo negative 
that will fit our enlarger's 
negative carrier. High-contrast 



figuration. The artwork 
negative is placed in the 
enlarger's film carrier and 
focused on the easel to obtain 
a 1X image. To insure a 1:1 
scale, place an IC over the pro- 
jected image and adjust the im- 
age size until the pads in the 
image exactly fit the IC pin 
spacing. Now we can make a 
print. 

Enlargements must be made 
on lithographic film. It is ex- 
pensive, but no more so than 
any film purchased in sheet 
form. If you go into partnership 
with a friend you can cut the 
cost. 

Next, a 1:1 print is made 
from the negative in the 
enlarger. Lith film should be 
processed in special 
developer, but any developer 
used for photo enlargements 
will yield satisfactory results. 
The processed print is a 
photographic positive of the 
original artwork at the correct 
scale. We have now reached 
the point we would be at had 
we used the Thermofax 
method. 

The positive is now contact 



printed on lith film to produce 
the final 1X photographic 
negative of the original art- 
work. 

Note that we can change the 
scale of the original artwork in 
this process, but using the 
Thermofax method, we were 
stuck if the original scale was 
not 1:1. Also note that the line 
positive, or high-contrast 
positive, produced in the 
camera-enlarger method might 
at first seem wasted. It is only 
produced in order to get from 
the negative to the 1X 
reproduction. However, far 
from being a useless by- 
product, it can be used to make 
as many negatives as you want 
so that your friends can have a 
copy of your PC board layout. 
Now that we have the photo 
negative, we can proceed to 
make the circuit board. 

Making the Photographic Cir- 
cuit Board 

The first step was the art- 
work — your own, or that pub- 
lished with an article. The sec- 
ond step was to get a photo 
negative of the artwork at a 1:1 
scale. Now, we have to transfer 
it to the copper clad board. 

Suntronix Company adver- 
tised a PC kit in Kilobaud No. 2 
(February 1977) for $14.95 plus 
shipping. It contains several 
pieces of copper clad (single 
and double-sided), about two 
pounds of dry etch and a pint 
of immersion tinplate solution. 
You will have to buy some cop- 
per clad and etch. You don't 
have to tin-plate your boards, 
but it makes them look a lot 
more professional. For the 
etch, you can use ferric 
chloride, ammonium per- 
sulfate or cupric chloride. The 
Suntronix kit includes per- 
sulfate. 

The Safelight/Oven and 
Developing Tray 

A Buglite has been sug- 
gested as a suitable safelight 
for working on sensitized cir- 
cuit boards. After a few trips to 
the kitchen with all the lights 
out, first to prebake and dry the 
board, then to dry the resist, 
and still again to evaporate the 
developer and post-bake the 
resist, an alternative to the 



25 



kitchen oven was suggested 
(insisted upon) by my wife. 

The 60 Watt Buglite was 
mounted in an empty solvent 
can, and now serves double du- 
ty. The light produces safelight 
illumination, and the trapped 
heat is just about right for all 
the heating processes required 
in working on the boards. The 
"oven" is simply the upper sur- 
face of the can. 

Cut out one side of a second 
can and fold the edges back to 
eliminate the sharp surfaces. 
This will become the develop- 
ing tray. Any metal tray can be 
used, but this one is cheap and 
easy to make. To return unused 
developer to its storage con- 
tainer, just unscrew the cap 
and pour the solution without 
spillage through the opening. 

Don't use a metal tray for the 
etching process. The etch will 
eat up the tray. Use either a 
glass or plastic container— or 
the milk carton "boat" sug- 
gested in Kilobaud Klassroom. 

Presensitized circuit board 
costs about four times as 
much as sensitizing your own. 
Sensitizing material is 
available in spray cans from 
General Cement (catalog no. 
22-230 or 22-231). 

Yours truly, George Young, 
followed the directions on the 
can, and half a can later I still 
did not have a decent sensi- 
tized board. I tried everything I 



could think of, and then the 
spray nozzle on the can 
plugged up. After uttering a 
few suitable expletives for this 
typical Murphy's Law situa- 
tion, I removed the spray head, 
cleaned it out, and apparently 
in the process enlarged the 
hole in the nozzle. A blob of 
resist hjt the board. More ex- 
pletives. I cleaned up the blob 
with a cotton pad, and sudden- 
ly realized the board looked 
pretty good in the yellow light. I 
wiped the whole board, and it 
still looked good. It wasn't very 
smooth, but it was a lot better 
than the results I had been get- 
ting. I dropped it on the Buglite 
oven and the heat caused the 
resist to flow out over the sur- 
face. In a few minutes it was 
dry. I deliberately turned on the 
room lights, exposing the 
board. It looked very good. 

I removed the resist once 
more, cleaned and dried the 
board, and when it had cooled, 
repeated the process. I just 
took the blob produced by the 
spray can, wiped it over the 
surface with the cotton pad, 
and dropped it on the oven. 
Again it looked good. I burned 
and etched the board, and had 
my first photographic circuit 
board. (The process of expos- 
ing the sensitized circuit board 
through the negative is called 
burning in the printing in- 
dustry.) In the process, I had 








r 



The safelight/oven. 



Developing tray. 



learned a method of getting the 
relatively inexpensive photore- 
sist onto the board using far 
less resist than the spray 
technique. I've since learned 
that other resists can be ap- 
plied in the same manner with 
equally good results. The cot- 
ton pads are those used in the 
offset printing industry, and 
are available from your local 
AB Dick supplier (listed in the 
Yellow Pages). Ordinary cotton 
from the household first aid 
cabinet should also prove 
satisfactory. 

Exposing the Sensitized Cop- 
per Clad 

The least expensive ex- 
posure unit is Old Sol. Place 
the line negative in contact 
with the sensitized copper clad 
working under the safelight in 
a darkened room. Make sure 
the image you are going to 
create is rightside up. For you 
photographers, emulsion faces 
emulsion; for nonphotog- 



raphers, you'll probably have to 
ruin the job at least once to 
find out which surfaces face 
each other. Remember that you 
want the finished product to 
look the same as the original 
artwork. 

Place the negative and the 
sensitized board between two 
sheets of glass or a sheet of 
glass (with the glass on the 
negative side) and a piece of 
cardboard or other stiff back- 
ing. Tape the sandwich 
together, being careful that the 
tape does not obstruct the sur- 
face to be exposed. The "sand- 
wich" is then exposed to bright 
sunlight for at least five 
minutes. Ten to twenty 
minutes won't hurt — it is dif- 
ficult to overexpose the resist. 

After the sensitized board is 
burned (exposed), it must be 
developed. Return to the 
darkened room, and, working 
under the safelight, place the 
board in a metal tray and slosh 
very gently back and forth in 



27 



the developer (three to five 
minutes) until all the unex- 
posed resist is washed away. 
After the board has been 
removed from the developer, 
the room lights may be turned 
on. All photoresists are soft 
after development. Do not wipe 
the board off. Drain off any ex- 
cess developer and place the 
board on the Buglite oven. In 
about 15 minutes the developer 
will evaporate and the resist 
will harden. The board will then 
be ready for the etch. 

Developers and Resists 

Eastman Kodak Company 
makes several photoresists. 
Kodak Ortho Resist (KOR) and 
Kodak Photo Resist (KPR) are 
two that you can use. KPR3 is a 
newer Eastman resist that is 
applied straight from the can 
with a cotton pad. Used this 
way, a pint can will sensitize 
1000 circuit boards. 

KOR Developer is recom- 
mended for use with KPR3 
photoresist. I develop my 
KPR3-sensitized boards in lac- 
quer thinner charged with 



about 20 percent methylene 
chloride. I am not a chemist, 
and I have no idea what I'm do- 
ing with this stuff, but it works. 
The Eastman resists are fair- 
ly expensive— something in 
the neighborhood of $20-25 per 
quart. GC Spray Resist is a 
good alternative; spray it on 
and wipe it over the surface. 
When the nozzle clogs up, con- 
vert it to a blobber and you're 
in business. 

Other Assistance 

Now, here is another 
possibility for photographic 
assistance that you may not be 
aware of: Almost every high 
school has the equipment 
(camera, enlarger and dark- 
room) and the labor (students) 
to make your photo negative. 
And every high-school teacher 
can justify doing this job in 
terms of education for his 
students. In fact, it is precisely 
what he is looking for— a prac- 
tical application of course 
material. It represents putting 
into practice the skills he has 
been striving to get across in 



the classroom. Far from impos- 
ing on the teacher, you will be 
doing him a favor. The student 
will get an A for your photo 
negative, you will get a job 
done and the teacher will chalk 
up another plus for achieve- 
ment. 

If the job is done as an 
educational process, some 
ground rules need to be spelled 
out. What can be done com- 
mercially in a few hours may 
take several days in the educa- 
tional world. Learning takes 
time, and if you utilize the 
facilities that you, as a tax- 
payer, own, please make 
allowance for this fact. 

If your local school is not 
equipped for the job, drop me a 
line and I'll try to help. Send $2 
for each negative you want 
reproduced, your artwork and 
any other pertinent details. 
That should more than cover 
the cost of materials. My 
students are always looking 
for fund-raising activities, and 
if I can combine that with their 
education, so much the better. 
If I get too many requests, you 



might have to wait too long for 
the kids to do your job. If it 
looks like this is going to hap- 
pen, I'll send your stuff back 
with your money and advise 
you accordingly. If you plan to 
mail the artwork, scale it in 1X 
and don't fold it. 

Summary 

This started out as an article 
on a universal wire-wrap board 
that could add 4K of memory to 
your machine. We ended up 
with an attempt at giving you 
the capability to produce your 
own circuit boards at a cost 
commensurate with other 
aspects of our hobby. 

Photographic circuit boards 
can be made by the average 
home-brew enthusiast without 
placing undue strain on his 
pocketbook. We have tried to 
give you a method of getting 
artwork off the printed page 
and onto your copper clad so 
you can use all the work others 
are making available to us. 

Need 4K or 8K of memory for 
your computer? Print it and 
wrap it up!B 




Record and playback at 120, 
60 or 30 self-clocking bytes per 
second (extended Kansas City 
Standard) 

1200, 600 or 300 baud data 
terminal interface 

Dual cassette operation 

Compatible with SWTPC cas- 
sette software 

Optional kit permits program 
control of cassettes 

Optional adaptor permits inter- 
facing with any computer 



Upgrade your SWTPC 6800 system to 1200 baud with 
PerCom's CIS-30+ dual-cassette/terminal interface 



. 



The CIS-30+ . . . four times as fast as SWTPC's AC-30 with the same dual- 
cassette capability . . . plus a 1200-baud data terminal interface ... in a SWTPC 
color-compatible package that's only 1/10 the size of the AC-30. 

Dependable? The simplicity of Harold Mauch PerCom Data designs says more 
than any well-chosen words. Simply put, for only $79.95* you get the fastest, most 
dependable dual function interface you can buy for your SWTPC 6800. 

See your nearest dealer or order direct from PerCom. 

P7 PerCom 'peripherals for personal computing' 



PEflCCM 



PERCOM DATA COMPANY, INC. 
DEPT.K 318 BARNES GARLAND. TX 75042 

(214) 276-1968 

*Kit price. Assembled and tested: 
$99.95 + shipping. Tex. res. add 
5% tax. BAC & MC available. 









28 




with the Real-World Interface from The Digital Group 



A computer should have a purpose. Or as many 
purposes as you can imagine. Because a computer 
belongs in the real world. 

And now, the Digital Group introduces the Real- 
World Interface. A system component that's actually a 
system in itself, and specifically designed to help you 
get your computer to control all those tasks you 
know a computer can control so well. 

Automate your sprinkler system. Heat and cool your 
home. Guard against burglars. Shut off lights . . It's 
all a part of the Real World, easily controlled with the 
Digital Group Real-World Interface. 

Our Real-World Interface is initially made up of three 
basic components — motherboard and power supply, 
parallel CPU interface and cabinet — plus three types 
of plug-ins: AC controller, DC controller and 
prototyping card. The recommended software 
packages are Convers, Assembler or Maxi-Basic, in 
that order. 

Some of the features include: 

Motherboard & Power Supply 

• 12 slots — 11 control cards, one for the interface 
card 

• +5V DC±5% @ 1A, +12V DC ±5% @ 1A, -12V DC 
±5% @ 1A contained on board 

• May be free-standing (with care) 

Parallel CPU Interface 

• All buffering for Data Out (25 TTL loads), Address 
(25 TTL loads) and Data In (10 TTL loads) 



• Includes cable and paddlecard for connection to dual 
22 on Digital Group CPU back panel. Two 22-pin 
edge connectors included 

• Requires two output ports and one input port 

AC Controller 

• Eight output devices (2N6342A-2N6343A, -12 amp 
Triacs); Each output 240V AC max, 12A max RMS 

• Control AC motors, lamps, switches, etc. 

• Opto-isolated (MCS-2400 or equivalent) 

DC Controller 

• Eight output devices (2N6055) each output up to 
50V and up to 5A 

• Control DC motors, switches, solenoids, etc. 

• May use internal +12V DC for load or external DC 
up to 50V DC 

Price 

• For the motherboard and power supply, parallel 
CPU interface and cabinet, our kit price is only 
$199.50, or $260 assembled. Now that's down to 
earth. 

We've only just begun our Real-World Interface 
System. There are many more plug-ins and 
applications coming along soon. So write or call The 
Digital Group now for complete details. 

And welcome to our world. 




J v_rs— ■« II J 




-hue 



P.O. BOX 6528 DENVER, CO 80206 (303) 777-7133 



D12 



29 



Dr. John F. Stewart 
University of Miami 
Box 248237 
Coral Cables FL 33156 



CP/M Primer 



a most sophisticated operating system 




The author works on an Imsai 8080 in the University of Miami's Hertz 
Computer Lab. 




any fine articles have 
appeared in Kilobaud 
describing the principles of 
operating systems, but, as 
yet, no one has taken it on 
himself to present a detailed 
description of one of the sev- 
eral commercially available 
operating systems. In this ar- 
ticle, we will take a look at 
the disk-based CP/M system 
written by Digital Research. 
In particular, we will look at 
the version of CP/M that is 
currently available on the 
Imsai 8080 microcomputer 
system. There are only minor 
differences between the Imsai 
version and the original, so 
most of the following will 
apply to both. 



The CP/M operating sys- 
tem is currently available 
from Digital Research for 
$70, including documenta- 
tion and system diskette. I 
estimate it would take three 
to six man-months for a so- 
phisticated programmer to 
produce an operating system 
with CP/M capabilities. Thus, 
one of the original problems 
inherent in the micro- 
computer field — a lack of 
inexpensive software — has 
apparently been alleviated. 

Environment of CP/M 

The essential structure of 
the CP/M operating system is 
shown in Fig. 1. The CCP is 
the Console Command Pro- 



cessor — the part of the oper- 
ating system with which a 
user converses. A wide variety 
of commands is available, and 
these commands will be dis- 
cussed below. 

Basic Input/Output Sys- 
tem (BIOS) is the section of 
CP/M that deals with input/ 
output commands to all pe- 
ripheral devices except the 
floppy disks. This includes 
I/O to Teletype, CRT, 
printer, etc. A nice feature of 
BIOS is that the system I/O 
routines are available to the 
user through appropriate sub- 
routine calls in assembly- 
language programs. This capa- 
bility constitutes a powerful 
addition to the assembly- 
language arsenal. 

Basic Disk Operating 
System (BDOS) interfaces the 
system with the floppy-disk 
peripherals. Again, these rou- 
tines are available to the user, 
eliminating what is typically 
one of the trickiest aspects of 
assembly-language pro- 
gramming — that of I/O pro- 
gramming. 

The first 10016 (256iq) 



bytes of memory are used 
primarily as a scratchpad by 
the system. Various system 
parameters, such as where to 
jump on a restart, are con- 
tained in this area. In addi- 
tion, a fair amout of it is 
available to the user. In par- 
ticular, the default location 
of the top of the stack is 

location FF-|6 (255io)- 

Finally, the Transient Pro- 
gram Area (TPA) is the area 
of memory available for user 
programs. It comprises the 
bulk of memory, even in the 
16K system where it is 
26FF!6 (9983T0 or 9.75K) 
bytes in length. In addition to 
user programs, all CCP tran- 
sient commands are executed 
in the TPA. Thus, all user and 
most service programs origi- 
nate at location 100-|6- 

The CP/M system is a 
disk-based system, so that an 
important part of the envi- 
ronment confronting the user 
has to do with the way the 
diskettes are structured. The 
diskettes are composed 
logically of 77 concentric 
tracks numbered from out- 
side to inside as track 
through track 76. The first 
two tracks (0 and 1) are used 
to hold the CP/M system, 
which is bootstrapped into 
memory as indicated in Fig. 
1, when a cold-start proce- 
dure is initiated. Tracks 2 
through 76 are available for 
the directory (usually on 
track 2) and user or system 
disk files (programs or data 
files). Each track contains 26 
sectors, each of which is capa- 
ble of holding 128 bytes of 
information. Total disk ca- 
pacity, then, is a little in 
excess of 250K bytes, of 
which just over 240K is avail- 
able for user files. 

There are several im- 
portant points to make about 
the disk environment. First, it 



File Type 


Meaning 


BAS 


BASIC program. 


ASM 


Assembly program. 


SUB 


Submit file. 


INT 


Intermediate BASIC 


PRN 


Assembly results. 


HEX 


Assembly output. 


COM 


Command file. 




Fig. 2. File types. 



30 



is not necessary for the user 
to specify where on a diskette 
a particular file will go. The 
(BDOS) system automatically 
finds the necessary space and 
keeps a record of the name 
and \oca\\on cri each file in 
the diskette directory. This 
saves the user the trouble of 
remembering where a particu- 
lar file is located. Names of 
disk files are made up of 
three parts: 

1. The first letter is used to 
indicate which drive (A or B) 
the diskette is on. This letter 
is optional if the operating 
system is told to assume that 
all files are on a particular 
drive. 

2. The second part of the 
name is called the file name. 
It consists of from one to 
eight letters and/or numbers. 

3. The last part is the file 
type. File type is used to 
indicate whether a file is a 
BASIC program (BAS), an 
assembly-language program 
(ASM), etc. A list of file 
types is given in Fig. 2. 

Valid disk file names are 
shown in Example 1. 

A file name as defined 
above constitutes an unam- 
biguous file reference. In 
many cases, it is desirable to 
refer to a whole set of files 
with similar characteristics. 
This is done through the use 
of an ambiguous file refer- 
ence. File references can be 



A:MYPROG.BAS 

B:F12.ASM 

PIP.COM (uses default drive) 

Example 1. 



BIOS/BDOS 

3100 16 -31FF 16 



CCP 



2800 16 -30FF 16 



TPA 



100 16 -27FF 16 



System Area 

0-FF 16 



Fig. 1. Structure of CP/M 16K 
system. 



ambiguous in one of two 
ways: 

1. An asterisk can be used in 
place of either file name or 
file type to indicate any file 
name or file type. Thus, 
*.BAS refers to all BASIC 
language source files while 
MYPROG.* refers to all files 
named MYPROG, no matter 
what type they are. 

2. One or more question 
marks can be used in place of 
characters in either file name 
or file type to indicate that 
any character in that position 
is acceptable. Thus, files 
TEST1 .BAS, TEST2.BAS and 
TEST3.BAS could be referred 
to as TEST?. BAS. 

Console Command Processor 

As stated above, the CCP 
is the part of CP/M with 
which a user communicates. 
CCP prompts the user with a 
letter that indicates from 
which disk drive the system 
has been taken (also the de- 
fault disk drive for file refer- 
ences) followed by a greater- 
than character (i.e., A > or 
B>). 

Two types of commands 
are possible in CCP. There are 
built-in commands such as 
DIR (list directory of default 
disk), ERA (erase a file), 
REN (rename a file), TYPE 
(list a file) and SAVE. These 
commands are referred to as 
built in since the code for 
them is in the CCP area. The 
DIR and ERA commands 
allow the use of the full range 
of file references. For 
example: 

DIR *.BAS 

would list the names of all 
directory entries on the de- 
fault drive that have file type 

BAS. 

Transient commands exe- 
cute in the TPA just as user 
programs do. A nice feature 
of CP/M is that, in order to 
execute any program (system 
or user), the user merely 
types its name in response to 
a CCP prompt. Thus, the 
runnable version of a program 
has a file type COM (for 
command). 

There are five important 
areas addressed by CCP tran- 



Command 
B 

-B 

±nC 
nFxxx 

±nl_ 



Action 

Moves pointer to 
beginning of file. 

Moves pointer to end 

of file. 

Moves pointer ±n characters. 

Places pointer after nth 
recurrence of string xxx. 

Moves pointer up or down n 
lines. OL places the pointer 
at the beginning of a line. 



Fig. 3a. Pointer positioning commands. 



Command 

±nD 
I 

±nK 
±nT 



Action 

Delete ±n characters. 

Insert text. 

Kill (delete) ±n lines. 

Type in lines on console. 
OT types line up to pointer. 
1T (or T) types line from 
pointer to end. 

Fig. 3b. Basic edits. 



sient commands: 

1. Program entry and editing. 

2. Utilities such as copying a 
file from one disk to another. 

3. Generating and saving vari- 
ous versions of the operating 
system. 

4. Debugging aids. 

5. Language processing. 

We will discuss these areas 
one at a time. 

Entry and Editing (ED) 

A powerful editor (ED) is 
included in the CP/M operat- 
ing system. This is a character 
editor as opposed to a line 
editor, meaning that a file is 
considered to consist of one 
long string of characters with 
CR (carriage return) and LF 
(line feed) characters separat- 
ing each logical line. This 
string is held in a buffer area 
in memory. A pointer must 
be properly positioned in the 
text to indicate the location 
of each edit. Some of the 
basic pointer manipulation 
commands are shown in Fig. 
3a. As an example of the use 
of these editing commands, 
the command 

j*B2FXYZtz-3C 

accomplishes the following: 

• Moves pointer to beginning 
of buffer. 

• Positions the pointer 
immediately after the second 
occurrence of the string XYZ. 



Note, tZ (control-Z) is used 

to delimit the string. 

• Moves the pointer back 

three characters, i.e., it is now 

positioned before the X in 

the second occurrence 

(XYZ). 

Once the pointer is posi- 
tioned, a number of edits can 
be performed. These are 
listed in Fig. 3b. As an exam- 
ple of the use of these com- 
mands, consider the following 
two edit lines that are equiva- 
lent: 

j^B2FXYztz-3DOTT 
J^B2FXYZTZ-3C3DOTT 

The first line positions the 
pointer immediately after the 
second occurrence of the 
string XYZ; deletes the three 
characters preceding the 
pointer, i.e., the XYZ; and 
finally prints out the resulting 
line. The second example first 
positions the pointer follow- 
ing the second occurrence of 
XYZ, then moves the pointer 
back three spaces, finally de- 
letes the XYZ and prints out 
the resulting line. 

Since programs are line 
oriented, it is useful to be 
able to perform the basic 
functions of a line-oriented 
editor: inserting a line be- 
tween two existing lines, de- 
leting a line and replacing a 
line. While these functions are 
not entirely obvious, they can 
be accomplished. Assume for 



31 



A> KF> BIG.BAS (CR) 

-i-lOOA (CR) (bring first 100 lines into buffer) 

-*(edit first 100 lines) 

*.100W (CR) (write edited lines to temporary area) 

*.100A (CR) (bring second 100 lines in) 

•*(edit second 100 lines) 

*E (CR) (end edit) 

Example 2. 



AJ>PIP X.ASM = MAIN.ASM,SUB1.ASM,SUB2.ASM,SUB3.ASM 

Example 3. 



A> PIP TEST.BAS = CON:, X.BAS, Y.BAS 

Example 4a. 



A> PIP LST: = ONE. ASM, TWO.ASM, THR.ASM. 



Example 4b. 



demonstration purposes that 
the BASIC program shown in 
Fig. 4 is to be edited. We wish 
to insert the following line: 

30 input x 

and also to replace line 50 by 
the line 

50 NEXT I 

These edit lines accomplish 
these functions: 

JlBF40tz-2CI30 INPUT X 
!BFX2YPtzOLKI50 NEXT I 

The first edit line positions 
the pointer after the 40 and 
then moves it back two char- 
acters so that it is before 40. 
Then the INPUT statement is 
inserted. The second example 
positions the pointer after the 
erroneous string X2YP, then 
moves it to the beginning of 
the line, kills the line and 
inserts 50 NEXT I. Thus, line 
replacement is done by first 
deleting, then inserting the 
new line. Actually, using this 
editor does grow on you after 
some practice, even though it 
seems complicated at first. 

As the icing on the cake, 



10 S = 


20 FOR I = 1 TO 10 


40 S = S + X 


50 X2YP 


60 PRINT S/10 


70 END 


Fig. 4. Sample text. 



ED has several additional 
editing commands. For in- 
stance, the edit line 

JUBMSFlRSTtzSECONDtzOTT 

does a search for all occur- 
rences of the string FIRST, 
replaces each occurrence with 
the string SECOND and 
prints out each altered line. 
The only new editing charac- 
ters in this line are the S, 
which is the search command, 
and the M, which indicates 
that the next commands are 
to be repeated as many times 
as possible, i.e., until the end 
of the file. If a user is careful, 
he can perform most desired 
edits with the Search (S) 
command. 

The above discussion as- 
sumes that the file to be 
edited is located in a memory 
buffer. The designers of ED 
were aware, however, that a 
particular user might not have 
enough memory to hold an 
entire program at once. Thus, 
the editor contains com- 
mands that have to do with 
bringing parts of the file into 
memory and writing already 
edited sections to a tem- 
porary disk file to make room 
for another segment of the 
unedited source. Fig. 5 gives a 
list of some of these com- 
mands. A user with enough 
memory to hold only 100 
lines of BASIC might perform 
the sequence in Example 2 to 



edit a 200-line program. 

Note that the end edit (E) 
command does several things. 
First, it appends any remain- 
ing lines in the memory 
buffer to the temporary file, 
then it appends any remain- 
ing source file lines to the 
temporary file. Next, it re- 
names the original file, giving 
it file type BAK (BIG.BAK) 
for backup purposes. Finally, 
it creates a file under the 
original name (BIG.BAS) 
from the edited temporary 
file. So part of every editing 
run is a backup of the original 
file. 

Peripheral Interface Program 
(PIP) 

A second major transient 
command is the PIP program. 
PIP consists of a number of 
parts that perform utility 
functions for the user. One of 
the basic utility functions 
available allows the user to 
make a copy of an existing 
file. The PIP statement 

A > PIP NEW.BAS = OLD.BAS 

will copy the file OLD.BAS 
on the default disk to a new 
file called NEW.BAS. A 
rather interesting extension 
of this basic idea is to copy 
several files back to back to a 
newly created file. The state- 
ment in Example 3 could be 
used to create a program file 
from a main program 
(MAIN.ASM) and append 
three subroutines 
(SUB1.ASM, SUB2.ASM, 
SUB3.ASM) called by the 
main program. This makes a 
modular approach to pro- 
gramming easy to implement. 
Just save commonly used 
subroutines as separate files 
and, when needed, append 
them to the main program 
with PIP. 

In order to understand the 
final application of PIP, we 
must recall the difference 
between logical and physical 
devices. A physical device is 
just what you would think — 
a TTY, a CRT, a printer, etc. 
Logical devices are devices 
defined in the BIOS, such as 
CON (console) and LST (list). 
Logical devices must be as- 
signed to specific physical de- 



vices before communication 
between them is possible. 
Consequently, the cold-start 
procedure would be to assign 
CON to your TTY or CRT 
and to assign LST to your 
TTY (normally you would 
want hard-copy output). This 
assignment is accomplished 
by the use of a set of eight 
front-panel switches called 
the IOBYTE switches. For 
example, the switch settings 

oooooooi 



V 4 

LST CON 

accomplish this assignment. 
The switches not used in this 
example are for assigning a 
tape reader and punch; so 
unless you have such devices, 
these would always be left in 
the zero position. 

PIP allows the user to refer 
to these logical devices, and 
therefore to the corre- 
sponding physical devices. If 
we decided to write a pro- 
gram called TEST.BAS, con- 
sisting of a main program to 
be typed in at the console 
that calls two subroutines 
X.BAS and Y.BAS already 
located on the default disk, 
we could use Example 4a. 

If we simply wanted a 
listing of ONE. ASM, 
TWO.ASM and THR.ASM, 
we could use Example 4b. 
The colon is necessary to 
distinguish the logical device 
name from a disk file. 

System Creation 
and Maintenance 

CP/M contains the soft- 
ware necessary for pro- 
creating itself in various 
forms. A system can be 
created to accommodate any 
amount of memory from 16K 
to 64 K bytes in increments of 
8K. The transient commands 
CPM and SYSGEN are neces- 
sary to accomplish a change 
of system size, while 
SYSGEN alone will make a 
copy of an existing system. 
Typically, a user who has just 
installed a third 8K memory 
board would use the com- 
mand CPM 24 * to generate a 
24K system. The SYSGEN 
command is then used to 
write the newly generated 



32 



Command 

nA 

E 
Q 

nW 



Action 

Append next n lines of 
source to memory buffer area, 
n = #implies whole program. 

End edit run. Create edited file. 

Quit edit run. Make no 
changes to file. 

Write n lines from memory 
buffer to temporary work file. 



JFS 


ORG 100H 




MVI A, 2 




OUT OFFH 




JMP 




END JFS 


Fig. 7a. 


Sample assembly- 


language program. 



Location 

0100 
0102 
0104 



Machine Language 

3E02 
D3FF 
C 30 000 



Fig. 7b. Machine-language ver- 
sion of TEST program. 



Fig. 5. Text movement editor commands. 



Option Meaning 

A Enter assembly-language mnemonics. 

D Display memory. 

G Execute with breakpoints. 

L Disassemble 

M Move a segment of memory. 

S Change memory values. 

T Trace program execution. 

X Examine CPU state. 

Fig. 6. DDT command types. 



system onto the first two 
tracks of the disk in drive B. 
This system can be given con- 
trol by placing it in drive A 
and doing a restart. Thus, it is 
relatively easy to change 
system size. Even if the user 
has only one disk drive, this 
can be accomplished by 
modifying the SYSGEN com- 
mand to write its output to 
drive A instead of drive B. 
Exactly how this is done is 
part of the next subject. 

Dynamic Debugging Tool 
(DDT) 

One of the more surprising 
transient commands to be 
found in the CP/M system is 
DDT. This command has a 
variety of options that enable 
the user to interactively exe- 
cute an assembly-language 
program. Included in the 
package is the ability to set 
breakpoints, single or 
multiple step through the 
program, alter the command 
(runnable) version of a pro- 
gram, disassemble the com- 
mand version of a program, 
insert assembly-language 
statements, examine status 
flags and more. These capa- 
bilities make DDT a useful 
and powerful part of CP/M. 
Fig. 6 gives a partial listing of 
DDT command types. 

The customary process for 
using DDT is first to write 
and assemble a program so 
that the command version 
(file type COM) is available to 



DDT. The debugging package 
is then invoked as follows: 

A>DDT TEST.COM (CR) 



This command loads DDT 
into memory instead of CCP, 
and DDT in turn loads TEST. 
COM at location 100i6- Now 
any of the command types 
can be executed. For 
example, suppose we desire 
to test the code shown in Fig. 
7a, which writes a 2 out to 
the front-panel programmed 
output lights. The assembled 
version is shown in Fig. 7b. 
Given that we have invoked 
DDT, we can illustrate its 
capabilities with a few ex- 



amples. First, let's check to 
see if the program is in 
memory beginning at location 
10016- This is done in Ex- 
ample 5a and this agrees with 
the machine-language version 
in Fig. 7b. 

Now let's single step 
through the program to see if 
it performs its intended func- 
tion (See Example 5b). The 
Trace command gives the 
state of the CPU, as indicated 
by the carry (C), zero (Z), 
minus (M), even parity (E) 
and auxiliary carry flags (I), 
the contents of the registers 
(A, B-C, D-E, H-L); the con- 
tents of the stack pointer (S), 
the program counter (P); the 
mnemonics of the instruction 
at the location pointed to by 
P (i.e., the instruction to be 
executed next); and, finally, 
the location from which the 
following instruction will be 
taken (0102-|6)- Let's take 
another step in Example 5c. 

Here, the MVI A,2 instruc- 
tion has been executed so the 
A register is changed ac- 
cordingly. None of the status 



flags have changed. The in- 
struction about to be exe- 
cuted is the OUT, OFFH, and 
the next instruction will 
come from 0104-|6- To finish 
the program, one more step 
(Example 5d) is required. 
Here, the program returns 
control to the operating 
system via JMP 0. The pro- 
gram seems to work properly. 
Two examples of the other 
command types are as 
follows: 

j_L100, 106 (CR) 

0100 MVI A.02 
~0102 OUT FF 

0104 JMP 0000 

The disassemble command re- 
creates the assembly-language 
mnemonics. 

^AlOO (CR) 

0100 MVI A,01 (CR) 

0102 (CR) 

This sequence replaces the 
MVI instruction by MVI A,1. 
Assembly-language state- 
ments can thus be entered at 
any location in the program. 
DDT takes care of assembling 
such statements. Finally, the 



- D100,10 6 

0100 3E 02 D3 FF C3 00 00 

Example 5a. 


- T (CR) (trace one 
COZOMOEOIO A = 


step) 
=00 B= 


0000 D=0000 H=0000 S= 


0100 P = 


=0100 MVI A,02 


♦0102 


Example 5b. 


- T (CR) 
COZOMOEOIO A = 


=02 B= 


=0000 D=0000 H=0000 S= 


=0100 P= 


=0102 OUT FF*0104 


Example 5c. 


.S.T (CR) 
COZOMOEOIO A 


=00 B 


=0000 D=0000 H=0000 S 


=0100 P 


=0108 JMP 0000 


*0000 


Example 5d. 



33 



following sequence changes 
back to the original MVI in- 
struction by changing the 
01 16 ,n location 1 01 1 6 to an 
02! 6 . 



^.SlOO 

0101 01 02 (CR) 

0102 D3 '(CR) 



Note that the period ends the 
substitute mode. 

As is readily apparent, 
DDT offers an invaluable tool 
for debugging assembly- 
language programs. 

The Language Processors 

The two main languages 
supported by CP/M are 8080 
assembly language and 
BASIC. The assembler (ASM) 
interacts with CP/M as 
follows. Utilizing the editor, 
the user creates an assembly 
source file, say TEST. ASM, 
on disk. This file is assembled 
via the transient command 
ASM TEST. There are two 
important outputs of the as- 
sembly process. The results of 
the assembly, including error 
messages, are placed into a 
file named TEST.PRN. These 
results can be viewed via the 
TYPE TEST.PRN command. 
The other output is a disk file 
named TEST. HEX, which 
contains the machine-lan- 
guage output of the assembly. 
The LOAD TEST command 
now is invoked to create a 
new file named TEST.COM, 
which contains the binary 





ED $1.ASM 




ERA $1.BAK 




ASM $1 




TYPE $1.PRN 




ERA $1.PRN 




LOAD $1 




$1 


Fig. 


8. SUBMIT file for 


editing, assembly and tests. 



(runnable) version of the pro- 
gram. This version of the pro- 
gram can be tested simply by 
typing its name as a CCP 
command or via DDT as de- 
scribed above. 

This whole process of 
editing, assembling, loading 
and running is such a 
common sequence that it 
would be helpful to be able 
to teach CP/M to do the 
whole sequence by itself. In 
fact, this can be accomplished 
using the concept of SUBMIT 
files. A SUBMIT file is a disk 
file of CCP commands, ex- 
cept that the specific names 
(or name) of the parameters 
are left unspecified. Instead, 
they are represented by $1, 
$2, etc. Fig. 8 shows a listing 
of a SUBMIT file named 
AS.SUB that is useful for the 
above editing, assembly and 
test process. To instruct 
CP/M to execute this 
SUBMIT file, the user simply 
types the transient command 

A> SUBMIT AS TEST 

All occurrences of $1 are 



replaced by the first para- 
meter in the parameter list 
(TEST), and CPM executes 
the list of commands as 
though they had been typed 
individually. SUBMIT files 
give CP/M a capability similar 
in nature to the job-stream 
concept in larger machines. 

The CP/M BASIC is a full 
version of BASIC with 
floating-point arithmetic and 
the full complement of built- 
in numeric and character- 
handling functions. It takes 
20K to run the BASIC lan- 
guage processors. 

The procedure for running 
a BASIC program is to first 
create a disk file of BASIC 
source statements, say TEST. 
BAS. The BASIC-E TEST 
transient command does a 
partial compilation of the 
source file, producing an 
intermediate file called 
TEST.INT. The RUN-E TEST 
command is used to load and 
run the program. 

Conclusion 

The intention of this 
article has been to present 
enough details of the CP/M 
operating system to give the 
reader a flavor for the degree 
of sophistication of currently 
available software. 

It is an interesting intel- 
lectual exercise to think 
about writing one's own op- 
erating system, but it seems 
clear that with such sophisti- 



cated software available at a 
reasonable price, the time and 
cost of writing an operating 
system is prohibitive. 

No comparison has been 
attempted between CP/M and 
similar software products on 
the market. It's difficult 
enough to keep track of the 
names of all the companies 
dealing in various aspects of 
the microcomputer market. It 
would take a great deal of 
time to evaluate all the soft- 
ware competitive with CP/M. 
I hope this article will offer a 
friendly challenge to others 
knowledgeable in particular 
micro operating systems. 
Let's see an article or two on 
these other systems. Let's 
bring micro-systems software 
out in the open. The personal 
effort is worthwhile and 
would be instructive to us 
all. ■ 



References: 

Imsai CP/M Floppy Disk Opera- 
tion System Version 1.31, Rev. 0, 
1976, Imsai Manufacturing Cor- 
poration, San Leandro CA 94577. 
An Introduction To CP/M Fea- 
tures and Facilities, 1976 (this 
and all following refs. by Digital 
Research, Pacific Grove CA 
93950. 

ED - a Context Editor for the 
CP/M Disk System, User's Man- 
ual, 1976. 

CP/M Assembler (ASM) User's 
Guide, 1976. 

CP/M Interface Guide, 1976. 
CP/M System Alteration Guide, 
1976. 



IDS 



INTERNATIONAL DATA SYSTEMS, INC. T^r^&Lorters^ 

prepaid Shipping atfded to COD 

400 North Washington Street, Suite 200, Falls Church, Virginia 22046 U.S.A. Min,mum order $100 ° Mas,er 

Charge accepted 



Telephone (703) 536-7373 

BIG SAVINGS ON PRIME COMPONENTS DUE TO MANUFACTURERS LARGE QUANTITY DISCOUNTS. 



LOW POWER SHOTTKEY 



74LS00 

74LS02 

74LS04 

74LS08 

74LS11 

74LS13 

74LS30 

74LS32 

74LS74 

74LS85 

74LS90 

74LS92 

74LS125 

74LS126 

74LS151 

74LS155 



.22 
.24 
.24 
.28 
35 
69 
.26 
.34 
49 

1 99 
89 
89 
63 
.63 
95 

1.25 



74LS174 


1.25 


74LS175 


1.25 


74LS192 


2.45 


74LS193 


245 


TTL 




7400 


.15 


7406 


.29 


74121 


.35 


74150 


.85 


SHOTTKEY 




74S00 


.40 


74S30 


.40 


74S132 


1 10 


74S196 


3.80 



BAUD RATE GENERATOR 



MC14411 


9.90 


600MHz PRESCALER 


11C90 


19.00 


PRIME INTEL 




8085 CPU 


29.00 


8251 USART 


10.50 


8212 PIO 


4.00 


8155 


29 00 


8253 PIT 


24 00 


8255 PPI 


22.00 



110 



34 



TARBELL SETS STANDARDS 

For Hobbyists and Systems Developers 

Sales to thousands of hobbyists over the past two years have proven the Tarbell Cassette 
Interface to be a microcomputer industry standard. Tarbell Electronics continues research and 
development to produce new and efficient components to fill hobbyists' changing needs. 

TARBELL 
CASSETTE INTERFACE 

Plugs directly into your IMSAI or ALTAIR • 

Fastest transfer rate: 187 (standard) to 540 bytes/ second 

Extremely Reliable— Phase encoded (self-clocking) 

4 Extra Status Lines, 4 Extra Control Lines 

37-page manual included 

Device Code Selectable by DIP-switch 

Capable of Generating Kansas City tapes also 

No modification required on audio cassette recorder 

Complete kit $120, Assembled $175, Manual $4 

TARBELL FLOPPY DISC INTERFACE 

• Plugs directly into your IMSAI or 
ALTAIR* and handles up to 4 
standard single drives in daisy- 
chain. 

• Operates at standard 250K bits 
per second on normal disc format 
capacity of 243K bytes. 

• Works with modified CP/M 
Operating System and BASIC-E 
Compiler. 

• Hardware includes 4 extra IC 
slots, built-in phantom bootstrap 
and on-board crystal clock. Uses 
WD 1771 LSI Chip. 

• 6-month warranty and extensive 

documentation. Compatible Disc Drives 

Kit $190 Assembled $265 Ask about our disc drives priced as low as $525 




Hint ill ii a 

•••■Jili hi 
mi itmaaiH 




TARBELL 

PROTOTYPE 

BOARD 



Model 1010 




::::::::::::::::::: ::::::::::;:::::::.:: 



lllllllllllllllllllllllllllllllllllllllllll 



• Gold plated edge pins 

• Takes 33 14-pin ICs or 

• Mix 40-pin, 18-pin, 16-pin and 
14-pin ICs 

• Location for 5 volt regulator 

• Suitable for solder and wire wrap 

• ALTAIR/IMSAI compatible 
Price: $28.00 



For fast, off the shelf delivery, all Tarbell Electronics products may be purchased from computer store dealers 
across the country. Or write Tarbell Electronics direct for complete information. 

'ALTAIR is a trademark/tradename of MITS, Inc. 

20620 South Leapwood Avenue, Suite P 
Carson, California 90746 

(213) 538-4251 th 




35 



Arthur G. Burns 
7100 NW 17 St. 
Bldg3,Apt315 
Plantation FL 33313 



Calculator — my cost 
$395, your cost $35. 
With that "for sale" ad 
successfully (?) transacted, I 
announced to my still-patient 
spouse (a veteran of H-P 35s, 
Tl 51 and Tl 52 calculator 
campaigns), "Now I'm going 
to get the calculator!" The 
calculator was to be a Tl 59 
programmable plus a 
PC-100A printer. "Think of 
it," I exclaimed. The $395 
price tag that five years ago 
had hung on my first hand- 
held "number-cruncher" 
would now include: a mag- 
netic card or keyboard- 
programmable portable calcu- 
lator with up to 960 program- 
mable steps, or 100 memory/ 
data registers; a mating (but 
detachable) printer having 
full alphabetic, symbolic and 
numeric typeset. The printer 
functions under keyboard or 
program results! 

I bought the package, and 



Space-Saver System 

the Tl 59 programmable calculator 

and PC-100A printer 



I still think it was a super 
purchase. Here's an armchair 
tour of what I found. 



a 



Solid State "Software' 

A new innovation 
emerging in hand-helds is the 
use of solid-state chips con- 
taining multiprogram libraries 
the user can insert and 
remove from the calculator. 
The Tl 59 comes with a 
Master Library Module 
"chip" containing 25 pro- 
grams ranging from matrix 
math (a 9 x 9 matrix inver- 
sion can be performed that 
occupies 898 steps and 



requires 12 minutes to solve!) 
to moving averages, com- 
pound interest, annuities, 
etc., and yes, of course, a 
game (HI- LO)! 

The real power of these 
library modules is their easy 
accessibility through a simple 
keyboard call-up routine, 2nd 
PGM-M-N, where M and N are 
the program identification 
numbers, and/or a subroutine 
in a user-developed program. 
Employing the solid-state 
libraries as program sub- 
routines actually extends the 
program step capability out 
into the thousands of steps in 




No need to build an extra room in the house for this combo! 



many cases. 

Manuals — Back to the Books 

The Tl 59 comes with two 
large (8Y2 x 11) manuals, 
Personal Programming and 
Master Library. If you're the 
"push the switches and 
buttons and read later" type, 
these widgets will be your 
Waterloo. Personal Program- 
ming was my evening reading 
material for two solid weeks! 
There are 45 keys on the Tl 
59 keyboard. Through their 
direct function, and when 
combined with the 2nd and 
INV keys, they allow 108 
operations from the key- 
board! The manual's large 
print and organization of 
instructions are effective if a 
reader sequentially works his 
way through it. However, a 
ring-binder type of manual 
instead of the hard binding 
type used would help the 
reader. 

Master Library details the 
key usage sequence and gives 
sample problems for each of 
the 25 programs stored in the 
Master Library solid-state 
module. A disappointment 
was the lack of a full step 
sequence listing for any of 
the programs. Such a listing 
would help the novice pro- 
grammer understand how 
program sequences are opti- 
mally employed. For owners 
of the Tl 59 and PC- 100 A 
printer, an answer does exist: 
a down-loading procedure 
that transfers a selected 
library routine into the calcu- 
lator memory where it can 
then be printed out as a 
step-by-step sequence. 



36 




Programming a future article? 



Programming, Calculator 
Style 

Flowchart problem-struc- 
turing, subroutines, GOTO, 
branching, looping, condi- 
tional testing and transfer, 
terms familiar to mini and 
microcomputer users, are 
applicable to T I 59 program- 
ming. With a couple of key- 
strokes, the Tl 59 can be 
shifted back and forth from 
the calculator mode to the 
programming mode, wherein 
each keystroke can be stored 
in the calculator's memory 
and, if desired later, onto 
magnetic cards for permanent 
storage. 

Another innovation is the 
Tl 59's ability to allocate or 
partition the total calculator 
memory between program 
steps and data storage reg- 
isters. Starting with 100 
memories and 160 program 
steps, you can trade in blocks 
of ten program memories to 
gain 80 program steps. The 
maximum is 960 steps. 

The partitioning is per- 
formed easily from the key- 
board and adds to the calcu- 
lator's versatility. For 
example, some games, such as 
Blackjack, require many pro- 
gram steps and few memories. 
Other uses, such as stock- 
market 30-or-60-day moving 
averages require lots of data 



memory and not many pro- 
gram steps. 

Put It in Writing - Print It! 

Hours and hours of pro- 
gramming and debugging on 
a Tl 52 had convinced me 
that my next calculator 
would have to have printout 
capability. The Tl 59 ex- 
ceeded my expectations for 
ease of programming and 
clear presentation of program 
results. The PC-100A printer 
incorporates a complete 
alphabetic, symbolic and 
numeric typeset. Full pro- 
gram titles and prompting 
directions can be printed, and 
calculation results can be 
labeled. 

Don't expect to use this 
feature too liberally, how- 
ever, since it's quite costly in 
terms of programming space. 
Each letter, number, space or 
symbol used has to be coded 
in as a two-digit number. The 
printer uses 2 1 /2-inch-wide 
heat-sensitive paper and solid- 
state heating element typeset. 
Twenty characters (alpha or 
numeric) can be placed on 
one line. Operation is really 
whisper-quiet. 

Primary Modes of Operation 

• List — Prints out each pro- 
gram step number and a key- 
code number that identifies 
which key was pressed for 



each step of the entire pro- 
gram. 

• Trace — Prints out every 
calculation value and the 
i nstruction that generated 
that value. 

• Calculation printout — This 
is under program control and 
causes a printout of inter- 
mediate and final calculation 
values. Four character labels 
can be added to each line. 

• Plot — Also a program-con- 
trolled feature allowing the 
printer to print an asterisk at 
any of 20 locations across the 
tape width. Since the tape 
advance can also be under 
program control, the result is 
a handy but rudimentary 
plotting capability. The 
personal programming 
manual shows a sample sine- 
wave plotting program. 

More to Come 

In addition to the Master 
Library Module, which comes 
as standard equipment with 



the calculator, Tl has other 
solid-state modules on real 
estate, statistics, navigation 
and surveying. These can be 
purchased separately and 
readily substituted for the 
Master Library. 

A user's group, sponsored 
by Texas Instruments has 
formed for Tl 59 owners; its 
purpose is to encourage pro- 
gram exchanges. The calcu- 
lator is so new, and the user's 
group response has been so 
huge, that it apparently 
caught Tl by surprise — so 
details of program listings, 
etc., are still at the printers. 
I'm sure Kilobaud readers will 
be interested in programs of 
applications, games and un- 
usual printouts since this is 
unquestionably going to be a 
"hot" user combo. 

Write, publish, and save 
your money, because al- 
though this certainly is the 
calculator, PET computer 
literature sure looks terrific. ■ 




View of the Tl 59 from the back. Removing the two-cell battery 
accesses the printer interface contacts. Note the Master Library Module, 
which contains 25 programs. 



37 



Everyone's 

getting personal 

in Long Beach. 

3 full days of technical sessions, exhibits, 

home-brew displays and the latest on personal and 

small business computing, all at PERCOMP 78. 

April 28-29-30. 



Jim Butterfield is on his way 
from Toronto with the entire, 
unabridged truth about KIM. 
Jim co-authored The First 
Book of KIM. 



Carol Anne Ogdin's keynote 
address bares the facts on 
"How Personal Computers Are 
Being Used Today." Carol 
comes to us from Software 
Technique, Inc. in Alexandria, 
Virginia. 



Dr. Portia Isaacson, a con- 
tributing editor for Datamation 
and an associate of Byte, brings 
computer enthusiasts the very 
latest word on "Computer 
Store Retailing." 



Louis Field, president of the 
International Computer Society/ 
SCCS, gives you everything he's 
got on "Getting Started in 
Micro-Computing." 



From Creative Computing 
Magazine comes David Ahl 
with all you'll ever need to 
know on "Marketing for the 
New Manufacturer." 



Attorney Kenneth Widelitz will 
be on hand with some friendly 
advice on Tax Aspects of 
Lemonaide Stand Computing" 
while his friend attorney 
Leonard Tachner delivers the 
low-down on "Patents, 
Copyrights and Computers." 



Admission for 3 full days of 
personal computing, complete 
with 180 exhibits, 66 fascinating 
seminars and all the going and 
coming you want is $10 ($8 for 
students and juniors) at the 
door, and $8 ($6 for students 
and juniors) if you pre-register. 



Just for the fun of it, we have 
an entire home-brew section... 
robotics, games, computer 
music, even every-day, sensible 
stuff like checkbook balancing 
and preparing mailing lists. 
You're sure to take home some 
new tricks to your computer. 



And don't forget, PERCOMP 78 
has booth after booth of every- 
thing in personal and small 
business computing. 



5 months before show time our 
dynamite exhibit list includes 
from A to V: 

The Astute: 

Advanced Computer Products 
Alpha Supply Co. 
Apple Computer, Inc. 
A-Vidd Electronics 



The Brilliant: 

Byte Industries Incorporated 
Byte Shop Lawndale 
Byte Publications, Inc. 



Whether you're just a beginner 
or a well informed expert, 
you'll find the latest on ham 
radio communications, graphic 
systems, word processing, 
pattern recognition or... (our list 
of topics is long, long, long) 
from basic to advanced in 
terms that you can really 
understand. 




\v 



\ * 



A .' 



If 

■i 







r 



The Captivating: 

Calcomp 

Computalker Consultants 

Computerland 

Computer Magazine 

The Computer Mart of Orange 

Computer Pathways Unlimited, Inc. 

Computer Power & Light Inc. 

Creative Computing 



The Dynamic: 

Databyte, Inc. 
D.C. Hayes Assoc. 
Dilithium Press 
Dynabyte, Inc. 



The Energetic: 

Edwards Assoc. 
Electronics Warehouse, Inc. 
Electro-Sonic Components, Inc. 
Entech 

The Hearty: 

Heathkit Electronic Centers 
Hobby World 

The Irresistible: 

Interface Age Magazine 

The Jovial: 

Jade Company 
James Henry Co. 

The Keen 

Kathryn Atwood Enterprises 
Kilobaud Magazine 

The Magnificent: 

Marinchip Systems 
Micropolis Corporation 
Mission Control 



The Omnipotent: 

! OK Machine & Tool Corp. 
Olson Electronics, Inc. 
Optical Electronics, Inc. 
Orange County Computer Center 



RIP THIS COUPON FROM THE 
PAGE AND GET IT TO US BY 

APRIL 10. 




PERCOMP78 

1833 E. Seventeenth St., Suite 108, Santa Ana, Ca. 92701 

(714) 973-0880 



I want to save time and money. 

Please send me 

pre- registration forms. 



K4 



Name. 



Address. 



City. 



State. 



Zip- 



L 



J 



The Personable: 

Pan Dynamics, Inc. 
Personal Computing 
Problem Solver Systems, Inc. 




The Tantalizing: 

Tandy Computers 
Tarbell Electronics 
Tech-Mart 
Telpar, Inc. 
TLF, Corp. 



The Ultra: 

Ultra -Violet Products, Inc. 

The Valiant: 

Vector Graphics, Inc. 
Vista Computer Co. 



Since everybody's coming, better make 
your advanced reservations. Pre-register 
and save (you won't have to wait in line) 
...but don't forget about your hotel room. 
Our staff has reserved rooms in hotels 
and motels near the Convention Center. 
We've even arranged for a shuttle bus 
service. So call and we'll save a room 
for you. 



^se 



Long Beach is close to Disneyland, 
Knott's Berry Farm, Universal Studios... 
everything, plus our staff will help you 
get wherever you want to go. 

A big, sunny beach is minutes from the 
Convention Center, and April is a great 
weather month in Long Beach, so plan to 
bring the family and have a good time. 



jBis 3 "*' - 




Mickey Ferguson 
PO Box 70S 
Trenton GA 30752 



How to Make Your 
SWTP System Happy 



give it a couple of floppies! 




The author and his system in a natural, unposed setting. 



Last September, our local 
Southwest Tech dealer re- 
ceived his first MF-68 Miniflop- 
py Disk System. I had been con- 
sidering the purchase of a 
floppy-disk system for several 
months and was sufficiently 
impressed with the MF-68 that I 
immediately gave him a check. 
The MF-68 has dual drives, con- 
troller/interface, FDOS soft- 
ware, Disk BASIC and a disk- 
based co-resident editor/as- 
sembler, all for only $995. 
Before I left Data-Comp (our 
local dealer), they called South- 
west Tech to place the order 
and were told the demand was 
unexpectedly large. (We have 

40 



since learned that Southwest 
Tech is one of Shugart's largest 
OEM customers for SA400 
drives.) I was told there would 
be a two-week delay. 

The Kit Arrives 

Exactly two weeks later, I 
received a call from Data- 
Comp; my disk system had ar- 
rived! The MF-68 documenta- 
tion, though rather sparse by 
Heathkit standards, for exam- 
ple, was about what I have 
come to expect from South- 
west Tech (having built their 
computer, terminal, printer, 
etc.). A booklet about the size 
of an issue of Kilobaud dis- 



cussed the software, and 
another smaller booklet con- 
tained the assembly instruc- 
tions. Setting aside the soft- 
ware book, I began reading the 
assembly manual, which con- 
tained typical Southwest Tech 
instructions— mount resistors, 
solder, mount capacitors, 
solder, etc. The manual also 
contained dire warnings, which 
I promptly ignored, about 
handling MOS devices (for 
most of the year in this part of 
the country you couldn't raise a 
static charge by rubbing two 
nylon cats together). The as- 
sembly of the unit appeared 
straightforward. The controller, 
a single printed circuit board, 
contains thirteen ICs and plugs 
into I/O port 6 in the Southwest 
Tech computer, which provides 
the power for the controller. 
The little black box that holds 
the two Shugart SA400 mini- 
floppy disk drives contains only 
the drives and their power sup- 
ply. The drives are connected to 
the controller via a 34-conduc- 
tor ribbon cable with connec- 
tors already attached. 

I then began looking for the 
"Theory of Operation" section 
in the assembly manual. In- 
stead, I discovered a couple of 
sentences that refer to some ar- 
ticles in Interface Age maga- 
zine—if you must know how the 



Western Digital 1771 floppy- 
disk controller chip on the con- 
troller card works. And I don't 
even know anyone who gets In- 
terface Age\ Then I turned to 
the "In Case of Difficulty" sec- 
tion, where I was informed that 
if it doesn't work, box it well 
and ship it back. Sure hope this 
thing works! 

The Assembly 

The actual assembly of the 
MF-68 was easier than the in- 
structions had indicated. The 
unit went together with less 
hassle than any Southwest 
Tech kit I have built. This really 
says a lot because, as I said, I 
have built several of their kits. 
The only problem encountered 
during assembly involved a .1 
uF capacitor destroyed in ship- 
ping. Also, someone forgot to 
include the wire ties to make 
the power supply for the disk 
drives a little neater. I replaced 
the capacitor with one from my 
junk box and purchased the 
needed wire ties from Radio 
Shack. 

The controller (see Photo 1) 
is a rather small, quickly 
assembled printed circuit 
board. However, because of the 
amount of hand-wiring re- 
quired, the assembly of the 
power supply takes con- 
siderably longer. The power 
supply is quite hefty (for exam- 
ple, its power transformer is a 
good bit larger than the one 
used by Southwest Tech in 
their computer). Working slow- 
ly and taking a break for lunch, I 
needed approximately six 
hours to assemble the MF-68. I 
decided to wait until the initial 
checkout before mounting the 
front panel or cover of the 
enclosure for the drives and 
power supply. 

My only complaint, to that 
point, applies equally to all 
Southwest Tech computer 
products — their instructions 
invariably exclude the most im- 
portant step: mount IC sockets, 
solder . . . nor do they ever in- 
clude IC sockets. A firm believ- 
er in M L (Murphy's Law), I only 
mount an integrated circuit on 
a printed circuit board by plug- 
ging it into a socket! Conse- 
quently, I never seem to have 



any problems with defective in- 
tegrated circuits. 

The Moment off Truth 

With my MF-68 assembled 
and all connections double- 
checked, I was ready to apply 
power. A check of the power 
supply revealed the presence of 
12 volts, 5 volts and ground re- 
quired on the proper pins of the 
plugs that connect to the 
drives. I loaded the bootstrap 
program provided by South- 
west Tech into the computer 
(and saved a copy to tape) and 
ran the bootstrap. 

Nothing happened! Back to 
the instruction book, where I 
find that it may be necessary to 
run the bootstrap a couple of 
times before it brings the sys- 
tem up. After a second try, 
nothing happened. Four hours 
later, I found no unusual 
voltages and I knew the clock 
for the WD1771 controller chip 
was working; but the bootstrap 
wouldn't bring the disk system 
on line! So I loaded the MF-68 
into the old VW and headed for 
Data-Comp, where we visually 
checked the system and found 
no errors. 

We tried to bootstrap their 
system with my controller and 
their drives. The system came 
on-line on the first attempt. We 
then tried the system with my 
controller and drives; again it 
worked the first time! Obvious- 
ly I had left the problem at 
home in my computer! Since 
we had my MF-68 system run- 
ning on Data-Comp's com- 
puter, we decided to give it a 
thorough check. We found that 
only one drive was working (bet 
you thought this sort of thing 
never happens when someone 
builds a kit with the idea of 
writing, a magazine article 
about it). Drive was function- 
ing perfectly, but the read/write 
head of drive 1 was stuck in the 
Home position and refused to 
move. There was no way for 
drive to avoid working; it was 
serial number 6800! Data-Comp 
did not have a replacement 
drive; therefore, I shipped the 
bad one back to Southwest 
Tech for a replacement, which I 
received nine days later via 
parcel post. 

At home, I removed the 



motherboard from my compu- 
ter and began examining it. The 
malfunction stuck out like a 
sore thumb— a single unsol- 
dered connection on the under- 
side of the motherboard. This 
unsoldered pin was on the 
molex connector for I/O port 6 
(the one used for the controller 
board). With the connection 
soldered and the system reas- 
sembled, the unit bootstrapped 
on the first try— everything ex- 
cept the defective drive worked 
perfectly. 

Why have I told you the 
details of my problem in getting 
my MF-68 up and running? 
Because I wanted to illustrate 
the old trap of instinctively 
blaming the new component 
without checking the rest of the 
system for a possible cause. 
After discussions with many 
MF-68 users in different parts 
of the country, I found the most 
common problems involved the 
motherboard, where cold sol- 
der joints or unsoldered con- 
nections usually appear. Some 
people have had problems with 
the PACK and/or COPY func- 
tions of the DOS— usually 
traced back to a marginal IC on 
the motherboard. The other 
problems include defective 
crystal on the controller board, 
which affects the clock for the 
WD1771, and defective disk 
drives. However, the systems of 
the vast majority of MF-68 own- 
ers with whom I have spoken, 
have worked properly the first 
time power was applied. 

The Software 

Southwest Tech FDOS V1.0, 
written by Robert Uiterwyk, 
recognizes the following com- 
mands: CATALOG (which may 
be shortened to CAT), HOME, 
FILES, PRINT, SAVE, LOAD, 
RUN, CREATE, INIT, DELETE, 
PURGE, RENAME, EXIT and 
TEST. All FDOS commands use 
the same format— command 
drive number, file name and 
password (if used). If the drive 
number is not specified, it is 
assumed to be zero. FDOS 
commands follow in detail. 

CATALOG. Lists the names 
of all files stored on a disk. 

FILES. Lists the names of all 
files stored on a disk along with 
all pertinent information about 




Photo 1. The entire Southwest Tech MF-68 floppy-disk system. 
The printed circuit board is the controller card which uses the 
Western Digital 1771 floppy-disk controller chip. 



the file. This information in- 
cludes: the track and sector ad- 
dress of the file on the disk; the 
number of sectors used to store 
the file on the disk; the file type 
(which may be blank file, sys- 
tem file, object program file, 
BASIC program file, co-resi- 
dent editor/assembler source 
file or BASIC data file); the 
lowest and highest memory ad- 
dress used by the file; and the 
entry point (initial program 
counter value) of the file. 

PRINT. Causes the output 
generated by the following 
command to be printed on a 
Southwest Tech PR-40 printer 
(at port 7) rather than on the 
control terminal. The command 
following the PRINT command 
should be either CATALOG or 
FILES. 

SAVE. Used to store a 
memory-resident object pro- 
gram on a disk. The SAVE com- 
mand allocates 25 percent 
more disk space than is actual- 
ly required to store the program 
to allow for future expansion of 
the program under the same 
file name. 

LOAD. Reads an object pro- 
gram from a disk file into the 
computer's memory. After the 
program is loaded, system con- 
trol is returned to FDOS. To run 
the program, get into MIKBUG 
and type 'G'. This command is 
helpful when you have a sub- 
program used by several other 
programs but not executed by 
itself; for example, a random 
number generator that may be 
used by many different games. 



RUN. Loads an object pro- 
gram as in the LOAD command, 
then automatically executes 
the program. 

CREATE. Names a file and al- 
locates disk space for it. 
CREATE is very useful in mak- 
ing efficient use of disk space. 
If you were to fill a disk by 
SAVEing programs, you would 
waste 25 percent of the disk 
space. If you are SAVEing pro- 
grams that will not be expand- 
ed, it is advantageous to 
CREATE the file before using 
the SAVE command, which 
uses only the disk space neces- 
sary to store the program. 

INIT. Since the Southwest 
Tech MF-68 is soft-sectored in 
the IBM format, considerable 
information must be stored on 
a disk before it can be used. 
This is taken care of when you 
INITialize the disk. Also, the 
INIT command stores a copy of 
the FDOS on the disk. 

DELETE (or PURGE). Re- 
moves a file from the disk 
catalog only. To erase the file 
from the disk, PACK (he disk 
after using the DELETE or 
PURGE commands. 

RENAME. Allows file names 
to be changed. RENAME may 
also be used to change a pass- 
word-protected file to an unpro- 
tected file or to give password 
protection to an unprotected 
file. 

HOME. Moves the read/write 
head to track 0. 

EXIT. Gives system control 
to the MIKBUG ROM. This com- 
mand caused me some prob- 



41 



the Computer Store,lnc, 

the store for the professional 




FEATURING the entire Data General 

microNOVA Line 

The Computer Store carries the complete Data General 
micro-NOVA computer line, available for off-the-shelf 
delivery. All units, components, and systems are fully 
factory assembled and tested on the component, board, 
and system levels. Subject to change. 

MAINFRAMES 

8561 micro-NOVA computer with 4K words (8K 
bytes) of RAM and nine-slot chassis. Price 
includes operator panel, key-lock switch, power 
supplies, rack mounts, and I/O bus termi- 
nator $1 ,995 

8560 micro-NOVA computer with 4K words (8K 

bytes) of RAM and eighteen-slot chassis $2,595 

MEMORY 

8572 4K words (8K bytes) MOS RAM board-960ns 
cycle time $600 

8573 8K words (16K bytes) MOS RAM board-960ns 
cycle time $950 

8568 1 K words (2K bytes) PROM $375 

8569 2K words (4K bytes) PROM $500 

DISKETTE SYSTEMS 

6038 One-drive Diskette system with 31 5K bytes. 
Includes integral data channel controller. 
NOVA 3 compatible diskette $2,900 

6039 Two-drive Diskette System $3,900 

PRINTERS- 

DATA GENERAL 

DASHER, 60 cps, 132 columns, typewriter keyboard, 
U/L case with El A or 20 mA interface $2650 

CRT TERMINALS 

DATA GENERAL 

6053 Alphanumeric Display Terminal with detachable 
keyboard. Ass'd $2290 

OFF THE SHELF DELIVERY 

FRANCHISE OPPORTUNITIES AVAILABLE 
The Computer Store has a unique franchise 
opportunity. Contact the Burlington Store. 



the Computer Storejnc. 



120 Cambridge St. 
Burlington MA 01803 
617-272-8770 




At 






Photo 2. The MF-68 with its cover and front panel removed. Notice 
the husky power transformer & filter capacitors. 



63 S. Main St. 

Windsor Locks CT 06096 

203-627-0188 



lems initially because I use RT- 
68/MX ROM instead of MIK- 
BUG, and EXIT jumps to the 
cold-start entry of MIKBUG. 
The cold-start entry point of RT- 
68/MX is at a different address. 
TEST. Reads all tracks and 
sectors on a disk and verifies 
the cyclic redundancy check 
(CRC) numbers. The CRC num- 
bers correspond to checksums 
on tape. By using the TEST 
command after the SAVE com- 
mand, you can find errors be- 
fore they become problems and 
repeat the SAVE (which should 
not fail a second time, unless 
the disk itself is bad). Although 
I have never had a bad SAVE, I 
use the TEST command follow- 
ing the SAVE command. 

System Files 

Five system files are provid- 
ed with the MF-68 FDOS: DOS, 
PACK, COPY, BASIC and 
CORES. Compared to the other 
files, system files are special 
since they cannot be deleted 
and are loaded and executed by 
typing their file name. In a file 
listing provided by the CATA- 
LOG command, system files 
are identified by a preceding $ 
(for example: $BASIC). Al- 
though the MF-68 documenta- 
tion provided by Southwest 
Tech does not discuss how to 
SAVE or DELETE system files, 
we will discuss the procedure. 
First, let's look at the system 
files provided with the MF-68. 

DOS. The Southwest Tech 
Floppy Disk Operating System. 

PACK. Moves all files on a 



disk into contiguous sectors, 
effectively erasing all files DE- 
LETEd or PURGEd from the 
disk. PACK can only be used on 
drive 0. 

COPY. Duplicates the con- 
tents of the disk in drive on 
the disk in drive 1. The new disk 
(the one in drive 1) must have 
been INITialized prior to the 
COPY. 

BASIC. An interim version 
that should have been replaced 
with the final version by the 
time you read this. SWTP Disk 
BASIC Version 1.0 is essential- 
ly SWTP 8K BASIC Version 2.0 
with extensions for use in a 
disk environment. It does not 
have data files. However, the 
final version will have sequen- 
tial and random-access data 
files, plus a few other goodies. 
Let's look at the extensions to 
FDOS BASIC Version 1.0 over 
8K BASIC Version 2.0 (SAVE, 
LOAD, TSAVE, TLOAD, DOS, 
CATALOG, CHAIN, STRING). 

SAVE. Stores a BASIC pro- 
gram from memory to a disk file. 

LOAD. Reads a BASIC pro- 
gram from a disk file to memory. 

TSAVE. Copies a BASIC pro- 
gram from memory to tape and 
is identical to the SA^t func- 
tion of 8K BASIC. 

TLOAD. Reads a BASIC pro- 
gram from tape to memory and 
is identical to the LOAD func- 
tion of 8K BASIC. 

DOS. Loads the SWTP FDOS 
operating system from disk and 
gives system control to it. 

CATALOG. Lists the names 
of all BASIC (and blank) files 



that are on a disk. 

CHAIN. Loads a BASIC pro- 
gram from a disk file and ex- 
ecutes the BASIC program. 
CHAIN may be used as a com- 
mand (without a line number) 
for immediate execution or as a 
statement (with a line number) 
to allow one BASIC program to 
call another. 

STRING. Used to determine 
the maximum length of string 
variables. According to South- 
west Tech's manual, the max- 
imum string length may be any 
integeT va^ue between 6 and 
128. However, we have found 
that 72 is the maximum value 
BASIC will accept. With any 
value greater than 72, BASIC 
will set the string length to 72. If 
the STRING = command is not 
used, the maximum string 
length is assumed to be 32. 

CORES. The Southwest Tech 
co-resident editor/assembler 
with extensions for use in a 
disk environment. The SIZE 
command of the tape version is 
no longer supported, but the 
following commands have 
been added. 

SAVE. Copies a source pro- 
gram from memory to a disk 
file. 

LOAD. Reads a source pro- 
gram from a disk file to 
memory. 

TLOAD. Reads a source pro- 
gram from tape to memory and 
is identical to the LOAD com- 
mand of the tape version of the 
co-resident editor/assembler. 
There is no TSAVE command in 
the disk version of CORES. 

DOS. Reads the SWTP FDOS 
program for a disk to memory 
and gVves s*ys\em control to it. 
Under CORES, when assem- 
bling a program and using the 
necessary options, the object 
program is stored on a disk file 
rather than on tape. As a result, 
the second pass of the assem- 
bler is considerably faster than 
in the tape version (particularly 
if you are not also generating a 
source listing)! 

Adding, Deleting and 
Modifying System Files 

As I mentioned earlier, in- 
stead of the MIKBUG ROM, I 
use the RT-68/MX by Micro- 
ware, a great little monitor/real- 
time operating system (which 



I've written up in another ar- 
ticle). However, it is not 100 
percent MIKBUG compatible, 
which caused me one minor 
problem with the FDOS. Also, 
my terminal decodes a non- 
standard control character as 
the cursor back space. I prefer 
to have the cursor actually 
back up rather than have an 
underscore echoed when the 
software receives a back-space 
command like Southwest 
Tech's FDOS, CORES and 
BASIC. 

In light of these two factors, 
coupled with my wish to place 
several programs on disk as 
system files, I wanted to be 
able to add, delete and modify 
system files. Since Southwest 
Tech does not provide this in- 
formation, I will give it to you 
here. I am indebted to James 
Caldwell, K50HU, of the Inter- 
national 6800 User Group for 
the following information. 

To delete a system file use 
the RENAME command. To 
delete the system file BASIC, 
for example, the sequence in 
Program A would be used 
(operator inputs are under- 
scored to distinguish from 
machine prompts). 

The procedure for saving a 
system file differs slightly from 
that for saving a regular object 
file. Let's assume we have 
BASIC in memory, have modi- 
fied it and now want to save the 
modified version to disk as a 
system file. We use the follow- 
ing procedure: 

FDOS READY 

SAVE SBASIC(cr) 

FIRST ADDRESS? OlOO(cr) 

LAST ADDRESS? 23FF(cr ) 

PROGRAM START? OIOO(CR) 

? $$(cr) 

FDOS READY 

In the above procedure, the 
modified BASIC will replace the 
old system file BASIC at the 
same place on the disk where 
the old system file BASIC was 
located. It is not necessary to 
first delete the old system file 
prior to saving the new one. 
Since the same file name is 
used for both, the DOS will 
store the new one at the same 
location (this is true of any file, 
not just system files). You can, 
of course, use the above pro- 
cedure to add any new system 



the Computer Storejnc. 

the store for the professional 



Offers 
A Unique 

Profit 
Opportunity 



FOR 



Software 
Companies 

Systems Houses 

Computer 
Retailers 



The computer Store's Dealer Affiliate 
Distributor Program features the Data 
General micro NOVA computer line 
and established professional business 
applications software for resale to the 
explosive small business computer 
market. Sales and technical training in- 
cluded. For details: 

Call Paul Conover 



the Computer Store,lnc. 



120 Cambridge St. 
Burlington MA 01803 
617-272-8770 



63 S. Main St. 

Windsor Locks CT 06096 

203-627-0188 MJt 

C34 



files that you desire. 

The Western Digital 1771 

As I have mentioned, the 
Southwest Tech MF-68 uses 
the Western Digital 1771 
floppy-disk controller chip. The 
selection of the 1771 was a 
wise decision for a number of 
reasons: The 1771 appears to 
be a microprocessor whose 
sole function is to allow com- 
puters to communicate with 
floppy-disk systems. The use of 
the 1771 makes it easier for the 
person who writes disk-operat- 
ing system software and 
enhances the data transfer rate 
between computer and disk or 
between disk and computer. 
The data transfer rate is in- 
creased because the computer 
is, for the most part, freed from 
worrying what the disk is doing. 
Suppose the DOS software has 
determined (by reading the disk 
catalog) the program it wants 
stored on the disk at track 5 and 
sector 6, and the program re- 
quires seven sectors of disk 
space. The computer would 
then tell the 1771 to go to track 
5, sector 6, and get seven sec- 
tors; then the computer only 
has to look for the data to start 
coming and begin storing it in 
memory. In some disk systems 
the computer has to position 
the head, find the proper sec- 
tor, etc. This slows the data 
transfer rate considerably. 
The 1771 is an MOS/LSI 



FDOS READY 

RENAME SBASIC(cr) 

NEW FILE NAME? MUD(cr) 

FDOS READY 

DELETE MUD(cr) 

FDOS READY 



(cr) signifies the termination of 
input with a carriage return 



Program A. 



device performing the func- 
tions of a floppy-disk control- 
ler/formatter, designed to be in- 
cluded in the disk drive elec- 
tronics, and contains a flexible 
interface organization that ac- 
commodates the interface sig- 
nals from most drive manufac- 
turers. It is compatible with the 
IBM 3740 format. The proces- 
sor interface consists of an 
eight-bit bidirectional bus for 
data, status and control word 
transfers. The 1771 operates on 
a multiplexed bus with other 
bus-oriented devices. 

Some of the features of the 
Western Digital 1771 are: soft- 
sector format compatibility, 
automatic track seek (with veri- 
fication), single/multiple record 
read with automatic sector 
search, entire track read, fixed 
or variable record length, sin- 
gle/multiple record write with 
automatic sector search and 
entire track write for disk ini- 
tialization. All of the communi- 
cations with the data bus for 
transfers of data or control/ 
status information are double- 



buffered within the 1771, which 
is used for programmed data 
transfers, or in a DMA environ- 
ment. 

The 1771 also contains CRC 
logic used to generate or check 
the 16-bit cyclic redundancy 
check numbers. It also con- 
tains an arithmetic logic unit 
(ALU), an address mark detec- 
tor and timing and control 
logic. 

The language of the 1771 
consists of eleven commands, 
which are RESTORE, SEEK, 
STEP, STEP IN, STEP OUT, 
READ COMMAND, WRITE 
COMMAND, READ ADDRESS, 
READ TRACK, WRITE TRACK 
and FORCE INTERRUPT. With- 
out discussing these com- 
mands in detail, I will point out 
that they are essentially con- 
cerned with positioning the 
read/write head or transferring 
data. 

The use of the Western Digi- 
tal 1771 makes Southwest 
Tech's MF-68 one of the least 
software-dependent floppy- 
disk systems available to the 



hobbyist today. The highly ef- 
fective data transfer rate, made 
possible by the use of the 1771, 
means this minifloppy disk is 
actually faster than some full- 
sized floppy-disk systems. 

So How Does It Work? 

So far we have talked about 
the hardware and the software, 
but not the all-important end 
result. The two words that 
come to mind immediately 
when I think of the MF-68 are 
fast and smooth — fast be- 
cause 12K of BASIC or CORES 
loads in a couple of seconds; 
smooth because the software 
provided with the MF-68, like all 
of the software written by 
Robert Uiterwyk, neither in- 
trudes nor irritates— it just 
works. Come to think of it, what 
more could you ask from 
anything? 

Conclusion 

Since I had the problem with 
the bad drive, I waited until the 
replacement arrived before 
finishing the assembly (i.e., 
mounting the front panel and 
cover on the drive enclosure). 
Much to my dismay, the holes 
did not line up on the front 
panel and the chassis. Why is it 
that someone can produce a 
disk system that works as well 
as the Southwest Tech MF-68 
and fail to get the mounting 
holes for the front panel in the 
right places?B 



Nort^ Star Software 



Maillist 

Maillist is a general purpose mailing label program capable of 
producing formatted lists for tractor-fed or Xerox type labels. 
Maillist will also sort lists for any field. 

Price $39.95 on diskette with manual /stock to 14 day delivery. 

In-out driver 

Dos in-out driver is designed to set up mapped memory video 
boards in conjunction with hard copy device. The user may 
switch output under software control. Any file directory may be 
listed while in BASIC without jumping to dos. Spacebar will stop 
output for line by line listings. Designed for use with 3P+S and 
any tv board. 

Price $12.95 on diskette with manual /stock to 14 day delivery. 
Register 

Register is a cash register and inventory control program. The 
software will control a point of sale terminal and printer. It will 
search inventory for an item, price and ticket it. Register has 
provisions for min-max, automatic reorder, and critical list. 

Price $299.95 on diskette with manual 

All prices are FOB Santa Barbara, California. 

Terms COD Residents add 6% sales tax and $1.00 shipping. 

Alpha Data Systems A48 

Box 267, Santa Barbara, Ca. 93102 ■ 805/682-5693 



Datapoint CRT Terminals 




Fully-Assembled — Guaranteed 

#3360 $649.50 

• Add $ 1 5 packing. refurbished 

• Shipped FOB Washington. DC Terms check. MO 
or charge. 

• 90-day guarantee • Scrolling version $695.00 

Model 3360 speeds from 300-4800 Baud, numeric 
keypad, cursor controls. Edit, Block-Transmit, search 
modes ASCII Keyboard with codeable options 
Green phosphor, 24 80 ch lines, addressable cursor; 
RS-232C serial interface; other speeds available 
Manual $10; cable kit $9 95 Datashare/IBM-2260 
compatible version $1 ,1 00 00 • Model 3000 $825.00 
M-33 ASR Teletype $895, KSR $725; All M-28, 35 
components available, also Modems, readers 
QUANTITY DISCOUNTS AVAILABLE Leasing, ser- 
vice at low prices 

TELECOMMUNICATIONS SERVICES CO. 
Box 4117, Alexandria, Va. 22303 J26 
703-683-4019 / TLX 89-623 



RAINBOW COMPUTING INC. 

Supplier of 

Apple 

Wave Mat* 

The Digital Group 

Southwest Technical Products 

Digital Equipment Corporation 

Computer Products 

Peripherals and Supplies from 
PerSci Computer Devices 

Contronix Lear Siegler 

Diablo Multi-Tech 

Maxell Texas Instruments 

'Scotch' Brand Magnetic Media 
Specialists in Design, Implementation and 
Support of Custom Hardware/Software 
for Business, Educational, and 

Personal Use 
Consulting/Contract/Programming 
Operating Systems/Applications Software 

Experts in most major computer 

software including 

CDC. IBM, PDP 

BASIC, COBOL. FORTRAN, PL1 

Lisp, Simula, Snobol, SPSS, BMD's 

COMPASS, MACRO, 6800, & Z80 assembly languages 



10723 White Oak Ave., Granada Hills, Ca. 91344 
(213) 360 2171 



R10 



44 




AT A COMPUTER STORE NEAR YOU! 




RCC'S ^ 



T/ie Tola/ 
Computer System 



We took the most desirable small computer features and put them into one machine — for $2495! 

REX™, RCC's new personal computer, is space-age modern 
appearance, regal in features, but down-to-earth in price. 



in 



REGAL FEATURES 

Just add one of our video monitors (or our serial channel and your 
hard copy terminal) and BASIC or FORTRAN IV to the basic REX 
system, and begin developing your application programs. 

REX includes an S-100 motherboard with five card slots, 24K of 
RAM, Z-80CPU, video display interface, bootstrap PROM, two 
direct memory access channels, and powerfail and vectored interrupt 
circuitry. 

AND THAT'S NOT ALL! 

REX also includes a modern walnut-panel cabinet, ASR 33-type key- 
board, 15 amp power supply, microfloppy drive (double-sided 
and interface (including 8 bit parallel I/O port). All 



recording) 
standard. 



SOFTWARE TO PLEASE A KING 

REX includes a powerful system Monitor and a Floppy Disk Operat- 
ing System/File Management System as standard features. Low cost 
software options include ANSI standard FORTRAN IV, Extended 
Disk BASIC, Text Editor, and Linking Loader. 

A KING'S CHOICE OF OPTIONS 

Black and White or Color Video Monitors ■ Programmable CRT 
Character Generator ■ Expansion Microfloppy Drives ■ RAM 
Memory to 64K (does not require bus slots) ■ 120 CPS 80/96 
Column Printer BRF Modulator and Color TV Driver for Home Sets 
■ Programmable Serial Channel ■ Data Communications Modem. 

ROYAL QUALITY AT A SURPRISINGLY LOW PRICE 

A single drive REX system is shipped assembled and tested for 
$2495, list price. 



ARIZONA 

Tempe Computerworld, Inc. 

Tempe Phoenix Group, Inc. 

CALIFORNIA 

Escondido Business Enhancement 

Compuservice 

Huntington Beach Cybernetics, Inc. 

Lawndale Jade Computer Products 

San Diego Byte Shop 

San Francisco Computer Store of 

San Francisco 

San Jose Byte Shop III 

San Rafael . . .Byte Shop-Computer Store 
Santa Clara. . .Byte Shop-Computer Store 



DEALERS 

Sherman Oaks. . .Peoples Computer Shop 
Tarzana Tech-Mart 

COLORADO 

Englewood Byte Shop, Inc. 

Boulder The Byte Shop 

IOWA 
Davenport . Computer Store of Davenport 

KANSAS & MISSOURI 

Overland Park, Ka. . . Personal Computer 

Center, Inc. 
MARYLAND 

Rockville The Computer Workshop 

MICHIGAN 

Royal Oak . . Computer Mart of Royal Oak 




TM 



MINNESOTA 

Minneapolis Computer Depot 

NEBRASKA 

Lincoln Microtech 

Omaha Omaha Computer Store 

NEW YORK 

New York . .Computer Mart of New York 
TEXAS 

Dallas CompuShop 

Dallas Rondure Co. 

San Antonio Computer Shop 

WASHINGTON 

Bellevue . . . .The Microcomputer Center 
WISCONSIN 

Janesville Austin Computers 



TCQliStiC COntrOIS C0rp0rQtl0n 404 West 35th Street, Davenport, IA 52806 / Toll Free (800)553-1863 / In Iowa (319)386-4400 



Robert M. Luby, Jr. 
32 Westfield Rd. 
Meriden CT 06450 



The Coming Tragedy 



P 



• If 



rly Designed 



Small-Business Systems 



We all know it: Computers 
are rapidly entering the 
small-business world. Hard- 
ware prices have nose-dived to 
the point where a small 
businessman can afford his 
own computer for accounting 
and bookkeeping. If you're a 
hobbyist, you probably have 
dreams of trying your hand at 
commercial systems. The 
market looks mouth-watering. 
Last year in the state of Con- 
necticut alone, there were 1049 
liquor stores, each a potential 
customer for a small system. 

Sounds great, doesn't it? 
Yes, but watch out, there are 
questions to consider: "Who 
will be using the business 
system?"; "What requirements 
do the users have?"; and "How 
will those requirements be 
met?" 

Who'll Use 

the Business System? 

Unlike a hobbyist's play- 
thing, the small-business sys- 
tem is a tool, with but one func- 
tion—making money. The busi- 
nessman will use it, but others, 
namely, the owner's banker and 
the Internal Revenue Service, 
will also use it because they 
use the data that it generates. 
Moreover, they hold the busi- 
nessman responsible for the 
correctness of the data he 
feeds them. Both expect the 
data they receive to be what 
really happened; they accept 
no excuses for anything less. 

Generally, businessmen 
know little about computers. 
More important, they don't 
want to have to know anything 
about them. For example, one 



of those liquor-store owners is 
far more interested in selling 
booze, groceries, soup or his 
services than he is in computer 
repair or programming. Never- 
theless, he remains responsi- 
ble to his banker and the IRS, 
as well as to himself, for the 
correctness, accuracy and 
timeliness of his system's data. 
How does a businessman 
serve his banker's and his 
government's need for data 
when he has purchased a com- 
puter? He delegates the re- 
sponsibility to the system's 
designers and programmers. 
Although their customer is re- 
sponsible for the data placed in 
the system, they must bear the 
responsibility for the data's in- 
tegrity, accuracy and precision 
once it enters the system. 
Small-systems builders can 
meet these responsibilities by 
keeping systems' requirements 
in mind when they put the 
system together. 

Business System 
Requirements 

The primary requirement in a 
business system is reliability, 
which must take precedence 
over the hobbyist's rightful in- 
terest in elegance, speed and 
technological advancement. 
Since the system will manip- 
ulate accounting data, it must 
meet accounting and auditing 
standards. If the system's 
owner does not demand this, 
his banker and the IRS certainly 
will. 

A small system that main- 
tains accounting data must 
satisfy two requirements: (1) 
the system must ensure that 



the data it manipulates is ac- 
curate, secure and reliable; (2) 
the system must organize the 
data so that an auditor can 
verify the accuracy, security 
and reliability of that data. 
When the data from any ac- 
counting system takes such a 
form, we have what accoun- 
tants call an audit trail. 

The audit trail is the chain of 
human-readable cross-refer- 
ences that allow an auditor to 
trace any figure produced by an 
accounting system back to the 
transactions that generated 
that figure. Without the audit 
trail, the data is untraceable, 
and its reliability, therefore, is 
unable to be proved. Omitting 
an audit trail from any ac- 
counting system is a grave er- 
ror; in a small computer 
system, it is a fatal error. No 
system should ever change old 
data, or add new data without 
this audit trail, a pointer to the 
transaction causing the 
change. 

Fig. 1 illustrates how you can 
determine, through the audit 
trail, the total amount of money 
that customers owe a business 
(accounts receivable). For ex- 
ample, when you charge an 
item at a department store, the 
store keeps track of this in an 
accounts receivable set up 
under your name. Ultimately, 
the store's accounting system 
generates a summary figure 
that should be the total of the 
balances in the individual ac- 
counts. Since the vast majority 
of businesses and individuals 
pay their bills, the figure for re- 
ceivables partially predicts that 
department store's future cash 



resources. 

But wait! How do we know 
that no data has been lost in 
the summarization process? 
We don't know until we have 
periodically, on a sample basis, 
verified this total by tracing it 
back to individual transactions 
or otherwise inspecting the 
summarization process. Each 
entry in John Doe's account 
can be traced to either a sale or 
a payment. We can verify the 
system's mechanical accuracy 
simply by following the audit 
trail. After all, if we are to make 
good decisions about extend- 
ing credit to Mr. Doe, we should 
have correct data with which to 
do it. Otherwise, it's garbage in- 
garbage out (GIGO). 

How to Meet 
These Requirements 

The audit trail helps deter- 
mine whether the system has 
been correctly manipulating 
accounting data. If the account- 
ing data is inaccurate, it can 
help pin down the problem. The 
best system, though, is one 
that corrects errors by antici- 
pating and preventing them. 
The best systems design, like 
the best medicine, is preventa- 
tive. Like a disease, errors can 
infect any system severely 
enough to make it not only use- 
less, but also dangerous. Any 
accounting system must con- 
trol both the people using it and 
the data it processes if it is to 
be worthwhile. 

A computerized system pos- 
sesses two additional sources 
of error not contained in manual 
systems— the programs that 
control it and the hardware that 



M 



46 



Balance Sheet as of 12/31/77. 
ASSETS: 

Cash $xxxx.xx 

Accounts 

Receivable $yyyyyy 



Accounts Receivable Control. 

Balance: $yyyy.yy 

Accounts Receivable 
Subsidiary Ledger 



Inventory 



$zzzz.zz 



Buildings 

& Equipment Sqqqq.qq 
Total Assets $aaaa.aa 



Jones & Co. 
Sales Slip #AFC5 
Salesman # 4 

4 widgets at r.ss cb.aa 



b.bb 



Account # 
1001 
1002 
1003 

Total balance 



Name 
J. Doe 
R. Doe 
K. King 



Balance 

^$gggg 

$hh.hh 
$i i .i i 

syyyy-yy 



t 



Account of: J. Doe 
#1001 



Plus tax: 

Total sale $cc.cc -*- 

Signed. J. Doe. 



Trans- 
action # 
AFC5 
B123 
BAFC 



Date 
mmddyy 
mmddyy 
mmddyy 



Purch. 

$cc.cc 
dd.dd 
ee.ee 



Paid 



Balance 

$cc.cc 

ff.ff 

gg-gg 



An accounting system is basically a tree structure of lists. The balance sheet is the list of the 
business's assets, liabilities and equities. Each number in the balance sheet should be 
backed up by one or more figures in the general ledger control accounts. One of these, ac- 
counts receivable, is illustrated here. These control accounts are backed by subsidiary 
ledgers containing the detailed list of activity for each account— in this illustration, J. Doe's. 
Each entry in Mr. Doe's account can be traced to a specific transaction that was recorded on a 
sales slip. The trunk of this tree is the balance sheet. One type of leaf is the sales slip. 

Fig. 1. The audit trail. 



embodies it. In a small system, 
these sources of error will have 
to be controlled by the systems 
builders themselves; there isn't 
anyone else to do it. The owner 
is too busy; his employees are 
interested in getting the job 
done as easily as possible. No 
one is left to control errors but 
the designers and program- 
mers of the system, who must 
control four sources of error: 
people, programs, data and 
hardware. 

Controls over People 

People must be controlled 
for two reasons. First, people 
make mistakes; second, some 
people are larcenous. A regret- 
table truism in auditing circles 
is that the more trusted the 
employee, the larger the fraud 
he can perpetrate. In a small in- 
teractive system that gives 
rapid responses to most in- 
quiries, the entire records of a 
business could be inspected, 
deleted or destroyed. Before 
they enter this field, erstwhile 
systems designers should give 
long and hard consideration to 



the piteous state of a business 
that has had its master files 
rendered unusable or unreli- 
able. If they don't control these 
risks, they'll turn them into 
realities. 

In designing a system you 
should make it easy for the 
owner to supervise his employ- 
ees' use of the computer by 
catching errors before these er- 
rors contaminate vital data. 
Terminals can be locked. Files 
can be password-protected and 
enciphered. The system can be 
programmed to detect common 
errors and report their occur- 
rence so they can be corrected. 
In particular, tasks can be divid- 
ed among people so that either 
the owner participates in re- 
cording and verifying data or 
two employees check each 
other's work. This is called 
separation of duties. In- 
dividuals who control valuables 
should not keep the only 
records regarding them. 

Designing error checks is 
particularly important on small 
systems, which are likely to be 
interactive, giving immediate 



responses to user commands 
—a seductive feature. Often no 
paper record of a transaction 
has to be printed, a great 
feature for playing "Hunt the 
Wumpus." The chief selling 
point of these systems is that 
the data they process need only 
be entered once — when the 
sale is made or the goods 
received. The burden of pro- 
viding the edit checks that 
detect these errors rests 
squarely on the shoulders of 
the systems' builders. 

Builders of systems should 
put modules into the system to 
correct errors gently and, 
above all, understandably. Pro- 
grammers and engineers had 
better face the fact that a user 
confronted with error mes- 
sages like "SN ERROR," "il- 
legal operator" or, even worse, 
"Error 501," will be frustrated, 
unsettled and more likely to 
make mistakes. Requiring 
customers to remember 
strange abbreviations or to 
thumb through thick error 
manuals will only make things 
worse. The controls a system 



exerts over its users should not 
be so onerous that it inspires 
efforts to bypass it. 

This doesn't sound easy, 
does it? It isn't. Nevertheless, if 
a small system is to work in the 
most basic sense, it must con- 
trol the people who use it. De- 
signers, engineers and pro- 
grammers should make their 
systems easy to use and hard 
to abuse. 

Controls over Data 

Data should be computer- 
checked for accuracy. For ex- 
ample, most businesses pur- 
chase goods on credit and 
receive invoices, which should 
be checked for arithmetic er- 
rors when data is transferred to 
the computer. The system 
should look at an updated file 
of open purchase orders to de- 
termine whether the goods 
listed on the bill match the 
ordered goods. Amazingly 
enough, some people support 
themselves billing companies 
for merchandise that is unor- 
dered, as well as undelivered. A 
small system can catch this by 
cross-checking invoices with 
purchase orders. If such errors 
are made, the audit trail can 
pinpoint them. 

The system should perform 
these accuracy and cross-refer- 
ence checks before a master 
file is updated so that bad data 
will not contaminate it. Other 
pre-update checks should in- 
clude: 

1. A check that the part of the 
file about to be updated 
should be updated. 

2. A series of checks to ensure 
that all new data is reason- 
able. 

3. A check that the file change 
is authorized. 

4. A check that all data are 
completely entered. 

5. A check to ensure that the 
file change does not compro- 
mise the system's security. 

When updating a record, 
every system should check to 
see whether it is indeed this 
record that should be updated. 
With thousands of John Smiths 
in the country, we need an ac- 
count number to uniquely iden- 
tify the particular John Smith 
who is liable on that account. 

47 J 



But numbers can be misread 
and people can transpose 
digits, which would send that 
data to the wrong account. One 
guard against this is the self- 
checking number, an account 
number with an extra digit ap- 
pended. This digit is called a 
"check digit." 

Fig. 2 shows how a check 
digit is generated by a popular 
check-digit system, the Mod-11 
system. Fig. 3 shows how the 
same system detects a com- 
mon error— the transposition 
of two digits in a number. A 
check digit system helps 
assure that data goes where it 
is supposed to go; that 
people's purchases are, in fact, 
charged to their own account. 

In the Mod-11 check-digit 
system, each digit of the ac- 
count number is multiplied by a 
different power of 2. These 
products are added, the sum 
divided by 11, and the re- 
mainder is subtracted from 11 
to produce the check digit. This 
digit is then added to the end of 
the account number given the 
customer. 

One edit step checks that the 
new data is reasonable. Certain 
input, obviously, makes no 
sense, such as a purchase of 
$Q3.86. (Somebody hit the Q 
key rather than the 2 key.) To 
guard against unusual data 
leading to outlandish results, 
data placed into a record sec- 
tion that describes a single at- 
tribute of a customer, called a 
field, should be compared with 
the character types allowed in 
the field. For example, a 
customer may owe money to a 
business. The business records 
this in the record devoted to 
that customer in the accounts- 
receivable file, which contains, 
for each customer, that cus- 
tomer's name, address, ac- 
count number and open 
balance (what he owes the 
business). Decimal points, for 
example, should probably not 
appear in the name of a cus- 
tomer, nor should they appear 
in the account number. This 
type of check is called a field 
check. 

Another category of edit 
checks that the new informa- 
tion falls within certain reason- 
able limits. This is the limit 



check. For example, in a small 
business where single sales of 
$1000 are unlikely, that figure 
could come up if someone hit a 
few too many zeros when he 
rang up a $10 sale. Errors of 
this type can be as painful as 
they are ridiculous. The follow- 
ing paragraph shows how. 

A couple of years ago, a local 
Florida government used a 
computer to determine the 
property values so it could levy 
a property tax. The property-tax 
rate was set by dividing the re- 
quired revenue by the total 
assessment. In this case, the 
person who keyed the data into 
the town computer moved the 
value of a house three digits to 
the left. This multiplied the 
value of that house by a factor 
of 1000, which was added to the 
total assessment. The resulting 
tax rate was too low, but by the 
time this error had been discov- 
ered, the tax rate had been set 
for that year. That local govern- 
ment found itself a few million 
dollars short. Had this system 
been programmed to flag all 
assessments over a certain 
amount as possible errors, it 
would have caught this error. 

There are correct and incor- 
rect ways to program error 
checks. Of course, good error 
checks take more effort to pro- 
gram than bad ones. 

For example, suppose we 
wish to create a new record in a 
file. Part of this record will 
denote the sex of the subject. 
This would be useful in a cloth- 
ing store's customer file. If the 
customer is male, the field will 
contain an M; if female, the 
field should contain an F. What 
would happen if this field con- 
tained an R? (Someone hit the 
wrong key again.) The first pro- 
gram fragment in Fig. 3a does 
not check for this "none of the 
above" situation. The second 
one does. 

The reliable program speci- 
fies the desired response and 
checks for the required re- 
sponse before proceeding. The 
first program does not check 
for the "none of the above" 
situation that will occur, you 
can be sure. For example, the 
first program will take G for girl 
to mean male. If that type of er- 
ror repeats, a girls' department 



9 
16 



Account Number 9075. 

7 

x 8 x 4 



5 
2 



144 



28 



10 



144 plus plus 28 plus 10 equals 182. 
182/11 equals 16 with a remainder of 6. 
11-6 equals 5. 5, therefore, is the check digit, 
and the number given the customer is 9075-5. 

Fig. 2. Generating a Mod-11 check digit. 



Correct account number: 9075-5. 
Mistaken account number: 9057-5 (a transposi- 
tion error). 



9 
x 16 

144 




8 



5 
4 



7 
2 



20 



14 



144 plus plus 20 plus 14 equals 178. 
178/11 equals 16 with a remainder of 2. 11-2 
equals 9. So the check digit should be 9, but a 5 
has been entered. There must be a mistake in 
the account number, so the computer should 
now tell the operator about the error. 

Fig. 3. Detecting an error with a check digit. 



customer file will seem to con- 
sist largely of males with fem- 
inine names! If the business 
bases its marketing decisions 
on the large number of males 
who patronize it, those deci- 
sions will be wrong — and 
costly. 

If something like this does 
happen, only a customer com- 
plaint will detect it. When the 
contaminated data is discov- 
ered, the audit trail of file 
changes will be crucial in iden- 
tifying the problem and correct- 
ing the bad data that caused it, 
as well as the program that let 
this happen in the first place. 

To track this down to a single 
employee, the files can be 
password-protected and user 
identities obtained by keeping 
passwords personally secret 
and by changing them at least 
monthly. Passwords, for exam- 
ple, should not be echoed on a 
terminal as the user keys one in 
because other people can see 
them. Passwords used to ac- 
cess files should be part of the 
audit trail as well as the 
changes made during program 
execution. Owners, in par- 
ticular, should take password 



I 



security seriously, for only then 
will they be able to impress this 
on their employees. Another ac- 
cess control is the terminal 
lock; still another is a time-of- 
day check to ensure that data is 
entered only during business 
hours. 

On a more basic level, com- 
pleteness checks see that all 
the blanks are filled in com- 
pletely. To use my example of 
entering an account number, 
what would the system do if 
you entered the first two digits 
and then indicated that you 
were through? Would the sys- 
tem recover from that error? Re- 
member, the smaller the busi- 
ness, the more likely these 
kinds of errors will occur. The 
owner will be depending on the 
computer to catch them. 

To summarize, there is only 
one way to control the data in a 
computer system: check it, re- 
check it and check it again. In 
particular, check it before a file 
is updated so that good files 
will not be contaminated by 
bad data. When a file is con- 
taminated, only the system's 
audit trail will be available to 
help in the reconstruction pro- 



48 



Fragment I (unreliable) 

200 PRINT "Please enter the sex of the customer." 

205 INPUT Sex 

210 IF Sex is equal to "F" perform Female-Procedure and then GO TO Rest-of-Program. 

220 Perform Male-Procedure. 

230 Label*. Rest-of-program . 

the rest of the program 

Fragment II (more reliable) 

200 PRINT "Please enter the sex of the customer; either "M" or "F". 

205 INPUT Sex. 

210 IF Sex is equal to 4 F' perform Female-Procedure and then GO TO Rest-of-Program. 

220 IF Sex is equal to *M' perform Male-Procedure and then GO TO Rest-of-Program. 

230 Perform Sex-error Procedure and then GO TO 200. 

240 Label: Rest-of-Program. 

the rest of the program 

Fig. 3a. Error-check examples. 



cess. The system must main- 
tain a comprehensive, perma- 
nent audit trail to assure 
recovery from the inevitable er- 
rors. Limit checks, reasonable- 
ness checks, accuracy checks, 
authorization checks, com- 
pleteness checks, check digits 
and field checks control errors 
and maintain the purity of the 
data the system maintains. 
This purity is the system's most 
precious component. The own- 



er will depend on the system's 
designers, acting through the 
computer, to protect it. 

The system's data should 
also be secure from fire and 
theft. Master files should be 
copied on a regular basis and 
then stored off the premises in 
a safe place. 

Controls over Programs 

Programs come in two varie- 
ties—applications programs, 



which instruct the system to 
perform some useful task, and 
systems programs, which con- 
trol the system's operations in 
performing that task. For exam- 
ple, an applications program 
would control the system so 
that the computer would print 
mailing lists, while the opera- 
tion of the Teletype used to 
print the list would be con- 
trolled by a systems program 
used by other applications pro- 



grams, as well as the mailing- 
list-printing program. 

You can control applications 
programs— edit all inputs, pro- 
vide adequate error messages 
and test the program thorough- 
ly. Given omnipresent Murphy's 
law, the worst errors will prob- 
ably happen at the worst possi- 
ble time (i.e., when your cus- 
tomer runs his payroll). Hard- 
ware problems can be excused, 
but it's difficult to explain to 
your customer why his books 
won't be closed on time be- 
cause you can't find the error in 
your program. 

Another "control" is to un- 
derstand the business! Only 
then can you start flowcharting 
and writing the program. There 
is a great deal to learn— for ex- 
ample, inventory systems. 

One product of an inventory 
system is a figure for total in- 
ventory. This figure can be com- 
puted in any of the following 
ways: (1) first in-first out (FIFO); 
(2) last in-first out; (3) specific 
identification; (4) lower of cost 
or market; (5) replacement cost; 
(6) retail value method. 

These are a few of the more 




49 



I 



popular ways to compute that 
figure for total inventory, which 
seemed so simple a few para- 
graphs ago. To complicate mat- 
ters further, your customer may 
choose to value parts of his in- 
ventory by different methods. 
An auto dealer, for example, 
might use specific identifica- 
tion to value his inventory of 
cars, but use FIFO to value his 
parts inventory. Clearly, then, 
the hobbyist looking for extra 
money by selling inventory sys- 
tems had better know what he's 
doing before pencil is set to 
paper. If these things aren't 
considered, the programmer 
will not only imperil his client, 
he'll impoverish him. 

Another threat to the sys- 
tem's reliability comes from the 
systems programs that control 
its fundamental functions. If 
numbers are recorded with in- 
sufficient precision, round-off 
errors will pile up. As a case in 
point, the six decimal digits 
provided by some BASIC inter- 
preters are not adequate for a 
business application. Assum- 
ing that a small businessman 
wants to clear at least $10,000 



to support his family, we can 
determine how large this figure 
must be. If he has a five percent 
profit margin on his sales, they 
will have to be $200,000.00. 

This is an eight-digit number 
(oops!) and we have not includ- 
ed his liabilities and stake in 
the business, which are added 
to his sales to see whether his 
books balance. To fit even the 
smallest business, then, the 
system should provide at least 
eight digits of precision, with 
ten to twelve preferred. Adding 
numbers in this form is slower, 
but the trade-off is acceptable. 

To protect systems pro- 
grams from inadvertent modifi- 
cation, they can be placed in 
ROM (read-only memory). This 
also makes them harder to 
copy, since anybody who 
wished to pirate the program 
would have to interpret a listing 
in hexadecimal, or an uncom- 
mented listing produced by a 
disassembler program. They'd 
better be debugged before they 
are placed in ROM, though. 

Control of Hardware 

After my dismal recitation of 



r 



KIMSI 



"\ 





The KIM to S-100 bus 
Interface/Motherboard 

• Combines the power of the 6502 with the flexibility of 

the S-100 bus 

• Attaches to any unmodified KIM 

• Complete interface logic and fully buffered motherboard 

in one unit 

• On-board regulation of power for KIM 

• Eight slots of S-100 compatibility for additional RAM, 

Video and I/O boards. PROM Programmers, Speech 
processors . . . 

• Includes all parts, sockets for ICs, one 100 pin connector, 

and full Assembly/Operating documentation 

♦ Kit $125, Assembled $165 

♦ All units shipped from stock 

FORETHOUGHT PRODUCTS 

P.O. Box 8066-H __ 

Coburg, OR 97401 




the myriad miseries that can in- 
fect a small system's data and 
programs, I must mention 
another concern. Hardware 
should perform reliably. Tac- 
tics include read-after-write, 
checksums, error-correcting 
codes and parity checks. Yet 
most S-100 bus memory boards 
do not include parity bits. In a 
business system, that is a false 
economy. If a bit flips in a game 
system, the worst that can hap- 
pen is that you will have to start 
over — a minor inconvenience. 
In a business environment, the 
same error could mean lost 
time, at least— at most, lost 
customers. 

The system's audit trail must 
be made absolutely reliable. 
The tape drive or cassette deck, 
the floppy disk or printer, must 
preserve this data. Recovery 
from inevitable errors will be 
impossible without it. If the 
audit trail is not preserved, the 
businessman may have to hire 
a bookkeeper to reconstruct his 
records, which could take 
months. I previously mentioned 
that a businessman purchases 
a computer to make money. He 



does not make money by hiring 
a bookkeeper for several 
months because an incom- 
petently designed computer 
system destroyed its data or 
lacked an audit trail to 
reconstruct it. 

Summary 

Business users, above all, 
demand reliability from their 
computers. Therefore, busi- 
ness systems must be de- 
signed with control and verifi- 
ability built in. Behind their 
design they must have a 
philosophy that values control 
and reliability more highly than 
these factors are valued in hob- 
byist systems. Consequently, 
many hobbyist-level systems 
will probably prove inadequate 
in a business environment. 

The best way to correct these 
deficiencies is to prevent them 
with controls. If you're entering 
this field, help your client con- 
trol people using the system, 
the data it processes, the hard- 
ware that embodies it and the 
programs that control it. Con- 
trol is your goal. I've shown a 
few ways to reach it.B 



, , . t, ■ 



MICRODESK 





ZJ 



The perfect home 
for a personal or business computer 

48" x 24" x 26", Shelves 23" x 23", One Adjustable 
MICRODESK $96.50 113 lbs. F.O.B. Wichita 

COMPUTER SYSTEMS DESIGN 

1611 E. Central Wichita, Kansas 67214 

DEALER INQUIRIES INVITED 



M 



50 




SYSTEM 9710 



TheSELECTRIC II* Printer 

you can TRUST 




BECAUSE . . .Its brand new, 
and fully assembled and tested. 

ubUAUbh ... After extensive engineering design and testing by Micro 

Computer Devices, IBM Corporation has approved the SELECTERM for use with 
your microcomputer, and provides you with their factory warranty and yearly 
service agreement for the typewriter. In addition, the electronics conversion 
portion is fully warranteed by Micro Computer Devices. 

BECAUSE ... You can connect the SELECTERM to your computer within 
minutes of taking it out of the carton. 

IT'S THAT EASY! AND THAT RELIABLE! 



FEATURES 

■ Complete ASCII character set 
in supplied element. 

■ Full upper, lower case alpha- 
numeric characters. 

■ Tab Command, Index (verti- 
cal tab), Backspace, Bell— all 
under computer control. 

■ Parallel Interface, standard. 

ALL ELECTRONICS INCLUDED 

■ Power supply, electronics and 
cable sets included to permit 
immediate connection to the ' 
parallel port of any computer, 

at standard TTL level. 

SOFTWARE 

■ All necessary conversion soft- 
ware in PROM to handle 
ASCII input, directly. 

•Registered trademark of IBM Corporation 



PRINTER or TYPEWRITER 

■ May be used as a standard 
typewriter when not in use 
with your computer. 

OPTIONS 

■ Dual Pitch, $125 

■ Correction Feature, $125 

■ Tractor Feed Platen, $250 

■ Noise Reduction Feature, $50 



PRICE and DELIVERY 

■ Assembled and tested, $1750 

■ Available ONLY from author- 
ized dealers. 

■ Delivery 1 to 2 weeks from 
receipt of order. 

■ OEM delivery in quantity within 
30 days. 



AVAILABLE SOON 

■ RS-232 Interface 



M30 



micro 

computer 

devices 

inc. 

960 E. Orangethorpe, Bldg. F 

Anaheim, California 92801 

Telephone (714) 992-2270 

"Innovators to the Microcomputer Industry". 




51 



James P. Fentress 



Utility Routines 



useful programs for your 6800 



As a fellow microcom- 
puter addict, you have 
undoubtedly experienced a 
need for more and better 
software. Surely there have 
been times when having a 
useful utility routine available 
would have saved you a lot of 
programming and debugging 
time. However, even if you 
could have looked through 
your past magazine issues for 
a routine to do the job, the 
possibility of easily adapting 
that routine to fit your sys- 
tem would be very small. I 
am suggesting — and offering 
— a standard routine interface 
format to simplify the task of 
exchanging assembly language 
routines for the 6800 micro- 
processor. 

The interface program is 
called MONTOR, and is a 
6800 implementation of the 
executive routine presented 
by Dick Wilcox in the Feb- 
ruary, 1977 issue of Kilo- 
baud. (Please refer to his 
article for a good explanation 
of an executive, or monitor 
call processor.) The executive 
performs all the necessary 
housekeeping chores to make 
the system work, and now 
routines can be added to your 
library with a minimum of 
hassle or intensive debugging. 
It is not necessary to be a 
heavy programmer to add a 



routine to your library; just 
follow a few simple rules 
when calling a routine and 
you (and the routine) are in 
business. 

I have included with 
MONTOR a couple of utility 
routines that I feel can be 
useful to any operating sys- 
tem. These routines are 
primarily given as examples 
of how the routines might be 
written for the MONTOR 
library, but the neat thing 
about the system is that if 
they are left out, the system 
operation is not altered in 
any way. You just include 
those routines of interest to 



SELECT 
ROUTINE 
ACCORDING 
TO CODE 



you and your system. 

The two rou t i nes, 
EBCASC and ASCEBC, are 
code conversion routines for 
translating EBCDIC char- 
acters to ASCII and vice 
versa. Those systems with an 
EBCDIC-encoded keyboard 
and an ASCII-coded display 
would find the EBCASC 
routine very useful (I've seen 
a lot of beautiful surplus 
EBCDIC keyboards sold for 
less than $20, so this setup 
seems to be a likely pos- 
sibility). Certain ASCII-coded 
systems output to EBCDIC- 
coded displays, or to larger 
computer systems which are 




ASSIGN 
LOGICAL 
UNIT 
NUMBER 




ERASE 

MEMORY 

UNIT 



LOAD 
INTO 
MEMORY 



PRINT 

MEMORY 

BLOCK 



SET UP 
SNAPSHOT 



(RETURN \ 
TO CALLER/ 



EBCDIC character-code 
based. If your system is one 
such as this, the ASCEBC 
routine can be very useful to 
you. Other routines in the 
works are: preset memory, 
move multiple memory 
blocks, and multiple block 
tape output. I'll discuss these 
and other routines in more 
detail later in this article. 

Some considerations have 
been incorporated in the 
routines presented in order to 
make the monitor usable in a 
wide variety of system con- 
figurations. First, the monitor 
routines had to be reentrant 
so they could be used in a 
real-time environment. Sys- 
tem interrupt processors 
should have access to the 
monitor library as well as 
regular programs. Making the 
routines reentrant prevents 
some of the problems en- 
countered when putting to- 
gether a multiple-level oper- 
ating system. 

Some interesting extras of 
these reentrant routines are 
the possibility of writing re- 



MONTOR 





( E„TE„ ) 


i 




R PUSH 
STACK USER 
REGISTERS 


1 




GET ARC 
STACK USER 
ARGUMENTS 


NO 


^/VALID^V 
<^ ROUTINE _> 

Iyes 




1 


sindex 

COMPUTE 
ROUTINE 
ENTRY 


1 




ROUTINE 
EXECUTE 
USER ROUTINE 


J 


' 








RPOP 

UNSTACK USER 
REGISTERS 




( EX,T ) 



Fig. 1. Monitor example. 



MONTOR - The MONTOR flow 
diagram shows a series of sub- 
routine calls, and only one 
decision made: Is the routine 
number a valid routine, that is, 
did the caller specify a subroutine 
that MONTOR can't possibly 
have? (Routine #>128). 

Fig. 2. MONTOR. 



52 



cursive library routines, 
writing routines that call 
other library routines, and 
operating library routines 
from read-only memory. (Re- 
cursive programming is really 
a unique experience if you 
like programming. Rather 
than make a poor attempt at 
explaining it, I am directing 
interested readers to program- 
ming texts such as Program- 
ming Languages: Design and 
Implementation by Terrence 
W. Pratt, Prentice Hall Pub- 
lications, for more informa- 
tion on implementing re- 
cursive routines.) 

Some of the other con- 
siderations made in writing 
the software were that the 
overhead for calling a 



monitor library routine be 
kept to a minimum, that the 
subroutine calling format 
allow flexibility in passing 
and receiving information to 
and from the different 
routines, and that there be as 
little difficulty as possible in 
getting each new addition to 
the library up and running. 
(It shouldn't be necessary to 
carefully analyze each new 

routine in order to add it to 
your system!) If you don't 

readily see the logic in these 
considerations, please refer to 
Dick Wilcox's February, 1977 
Kilobaud article for some 
good general information on 
monitor call processors. 
Especially useful is his ex- 
planation of the raison d'etre 



of reentrant routines. 

MONTOR Operations 

I'm a simplistic pro- 
grammer, and write programs 
in as straightforward a 
manner as possible when 
solving a problem. As can be 
seen from the flowcharts, 
MONTOR is no exception. 
The monitor call processor 
must perform certain opera- 
tions, most of which are out- 
lined in the MONTOR flow 
diagram. The first operation 
is to save the contents of the 
caller's registers on the stack, 
where they can be kept until 
the library routine returns 
control. If the register con- 



tents were saved in some 
absolute memory location, 
the caller's registers would be 
overwritten if the library 
routine called another library 
routine via MONTOR. By 
saving them on the stack 
instead, routine calls can be 
nested to a depth limited 
only by the size of the stack 
area. The routine RPUSH 
accomplishes the actual reg- 
ister-push-to-stack operation 
(again in a very straight- 
forward manner, as can be 
seen from the RPUSH flow 
diagram), and the actual 
order of placing the registers 
on the stack is given with the 
program listing for RPUSH. 



EBCASC 



ASCEBC 



C ENTER J 



I 



LOAD DATA 
POINTER 8 
BYTE COUNT 




LOAD 
BYTE 




LINEFEED 
OR CARRIAGE 
RETURN 



NO 



YES 




YES 



COMPUTE 
ADDRESS AND 
LOAD EBCDIC 
CODE 



NO 



CONVERT 
TO ASCII 
SPACE 



CONVERT 
TO 

EBCDIC 
OR OR L/F 



STORE BYTE 
UPDATE 
POINTER 
DECREMENT 
BYTE COUNT 




ASCEBC — Although this flow- 
chart may look complicated, 
there are only four decisions 
being made. This routine operates 
by means of an indexed table: 
hexao.ec\ma\ $20 is subtracted 
from the ASCII character, then 
the result is added to the base 
address of the conversion table. 
The decisions made are: 1. Did 
the caller specify a zero byte 
count? (No operation.) 2. Is the 



current byte a number or char- 
acter? 3. Is the current byte a 
carriage return or line feed? 4. 
Are we done yet? Some points 
should be mentioned here — 
lowercase letters and control 
codes are not decoded. This cuts 
down considerably on the size of 
the conversion table. If a code is 
not converted, it is changed to an 
EBCDIC space code. The routine 
is fast, as conversion routines go. 



f ENTER J 



LOAD DATA 
POINTER a 
BYTE COUNT 




■o 



0- 



LOAD 

EBCDIC 

CODE 



$3F-$80 



LOWER 
BLOCK 
(SUB- 
TRACT 
$40) 




NEITHER 



$C0-$F9 




YES 



CONVERT 
TO 

ASCII 
C/R OR 
L/F 



COMPUTE 
AODRESS 
AND LOAD 
ASCII BYTE 



J_ 



STORE CODE 
UPDATE 
POINTER 
DECREMENT 
BYTE COUNT 




EBCASC - EBCASC is basically 
the same routine as ASCEBC, 
with the prime difference being 
that the conversion table has been 
split into two blocks. This split is 
necessary to conserve table space, 
because the EBCDIC character 
codes are not so nicely con- 
secutive as are the ASCII codes. 
The only extra decision made in 
this routine is to find out which 
table block the character to be 



converted lies in. Depending on 
the result of this decision, a dif- 
ferent quantity is subtracted from 
the character code, but then 
everything else is the same. The 
extra decision costs about 20 usee 
timewise, and several extra bytes 
of code. Note that only upper- 
case letters are converted, as with 
the ASCII-to-EBCDIC routine 
(ASCEBC). 



Fig. 3. ASCEBC. 



Fig. 4. EBCASC. 



53 



Since I've now referred to 
the program listing, I should 
explain some of the con- 
ventions used in commenting 
the listing: 

1 . ACCA, ACCB refer to the 
A and B accumulators, re- 
spectively. 

2. XREG refers to the X, or 



index register. 

3. CC refers to the condition 
codes register. 

4. ADX is an abbreviation 
for address. 

5. HI, LO refer to the upper 
8 bits and the lower 8 bits of 
a 16 bit value respectively. 

6. The contents of the stack 



pointer (S.P.) are listed from 
the most recent entry (at the 
top) down to the least recent 
entry (at the bottom). This 
makes the stack's memory 
address order an ascending 
series (as a program listing 
always is) with the lowest 
address at the top and the 
highest address at the bottom 



R PUSH 



0020 

0030 0000 
0040 

0050 0002 01F5 
0060 0000 
0070 0004 026F 
0080 0000 
0090 0006 02AF 



0110 
0120 
0130 



0150 
0160 
0170 
0180 
0190 
0200 



0220 
0230 
0240 
0250 
0260 
0270 
0280 
0290 
0300 
0310 



0008 

OOOA 

OOOC 

OOOD 

OOOE 

OOOF 

0011 

0012 

0013 



0008 

EB01 

A9 00 

37 

36 

30 

EE 00 

31 

31 

39 



0340 
0350 
0360 
0370 
0380 
0390 
0400 



0420 
0430 
0440 
0450 
0460 
0470 



0490 
0500 

0520 
0530 
0540 
0550 
0560 
0570 
0580 
0590 
0600 
0610 
0620 
0630 
0640 
0650 



0100 

0100 

0102 

0104 

0105 

0107 

0108 

010B 

010D 

010F 

0111 

0113 



Program A. Source Listings for MONTOR. 



♦FIRST PAGE CONSTANTS AND VARIABLES 



XSAV 



RMB 



EANDX FDB 
AEXSAV EQU 
AENDX FDB 
EAXSAVEQU 
JMPPTR FDB 



2 TWO BYTE TEMP STORAGE FOR 

INDEX COMPUTATIONS WITH INTERRUPTS OFF 

EATAB ADX OF EBCDIC TO ASCII TABLE 

XSAV INDEX COMPUTATION TEMP WORD 

AETAB ADX OF ASCII TO EBCDIC TABLE 

XSAV INDEX COMPUTATION TEMP WORD 

JMPTAB ADDRESS OF LIBRARY ROUTINE TABLE 



* 
* 

♦DINDX2: DOUBLE PRECISION ADD OFFSET TO BASE ADX 

*DINDX2 IS NOT USED FOR THIS VERSION OF 

♦MONTOR BUT IS AVAILABLE FOR EXPANSION TO 32K ROUTINES. 

* 

*ENTRY: 

*ACCA=OFFSET UPPER BYTE 

*ACCB=OFFSET LOWER BYTE 

*XREG=POINTER TO BASE ADDRESS UPPER BYTE 

*EXIT: 

*XREG=BASE ADDRESS + OFFSET 

* 

* 



ADD OFFSET LOWER TO BASE LOWER 

ADD OFFSET UPPER TO BASE UPPER 

PUSH LOWER BYTE ON STACK 

PUSH UPPER ON STACK 

X POINTS TO RESULT LOWER 

LOAD RESULTS INTO X 

RESTORE STACK 

RETURN 



DINDX2 EQU * 

ADD B 1,X 
ADC A X 
PSH B 
PSH A 
TSX 

LDX X 

INS 
INS 
RTS 
♦EXECUTION TIME= 39 USEC 

MONTOR 



*MONTOR SAVES THE CALLER'S REGISTERS,SAVES THE 
♦ARGUMENT ADDRESS AND NUMBER OF ARGUMENTS, THEN 
♦EXECUTES THE SPECIFIED ROUTINE AND RESTORES 
♦THE CALLER'S REGISTERS AND RETURNS CONTROL. 
♦IF THE ROUTINE #IS GREATER THAN 127, MONTOR 
♦SIMPLY RETURNS TO THE CALLER. 

♦♦♦THE MONTOR ROUTINES OCCUPY LESS THAN 100 BYTES 

* 

♦CALLING PROTOCOL: 

♦ JSR 

♦ FCB 

♦ FCB 

♦ FDB 

♦ NEXT 

* 

* 



MONTOR 
ROUTINE # 
#OF ARGUMENTS 
ADDRESS OF FIRST ARGUMENT 
INSTRUCTION 



♦FIRST PAGE CONSTANTS: 



0100 

8D IF 

8D40 

4D 

2B OA 

48 

CE 0006 

8D07 

EEOO 

ADOO 

8D21 

39 



♦JMPPTR FDB 

* 

ORG 
MONTOR EQU 
BSR 
BSR 
TST A 
BMI 
ASL A 
LDX 
BSR 
LDX 
JSR 
MONRETBSR 
RTS 
♦EXECUTION TIME 



JMPTAB ♦POINTER TO ROUTINE TABLE 



$100 

* 

RPUSH 
GETARG 

MONRET 

#JMPPTR 

SINDEX 

X 

X 

RPOP 

APPROX 



ARBITRARY STARTING ADX OF MONTOR 

SAVE CALLER'S REGISTERS 
STACK ARGUMENTS,GET RTN # 
SEE IF ARGUMENT OUT OF RANGE 
DO NOTHING IF OUT OF RANGE 
CHANGE ROUTINE #TO 2 BYTE VALUE 
POINT X TO ROUTINE TABLE ADX 
COMPUTE ROUTINE ADDRESS 
PUT ROUTINE ADX IN X REG 
EXECUTE SPECIFIED ROUTINE 
RECALL CALLER'S REGISTERS 
AND RETURN CONTROL 
40 USEC (MONTOR CODE) 



f ENTER 


) 


1 


STACK 

ACCUMULATORS 
AND CC REG 










DISABLE 
INTER- 
RUPTS 






I 




STORE X IN 

TEMP 

XMSBYTE ♦ACCA 

XLSBYTE-»ACCB 




1 






ENABLE 
INTER- 
RUPTS 






1 




STACK 

ACCA a ACCB 

(CONTENTS OF X) 


c 


1 


EXIT J 



RPUSH - RPUSH serves only to 
save the caller's registers on the 
stack. Care is taken not to per- 
form any operations that would 
change any program flags before 
they are set on the stack. 

Fig. 5. RPUSH. 



of the listing. 

Ref erri ng back to 
MONTOR operations, the 
next operation after stacking 
the caller's registers is to 
obtain the argument pointers 
from the calling program and 
place them on the stack. This 
is accomplished by GETARG, 
logically enough, and in addi- 
tion the caller's return pro- 
gram counter (that was saved 
on the stack by the jump to 
subroutine instruction) is 
modified by GETARG to 
point past the caller's argu- 
ment pointers. If this were 
not done then returning to 
the caller from MONTOR 
would produce the un- 
pleasant effect of executing a 
subroutine number, an argu- 
ment count, and an address. 
Since the results of this 
execution can be difficult to 
predict, I decided to avoid 
the situation altogether. 
(Refer to the GETARG flow- 
chart for another example of 
straightforward program- 
ming.) The listing of 
GETARG shows the stack 
contents before and after 
execution, and the on-ex'it 
format is the stack format 
that each library routine 



54 





GETARG 




























SINDEX 












[ ENTER ) 


















j 




0670 
0680 






♦SINDEX ADDS THE CONTENTS 
♦THE 16 BIT VALUE POINTED 1 


5 OF ACCA TO 








[*0 BY THE X 






SET 
POINTER 




0690 






♦REGISTER, AND RETURNS THE RESULT IN X. 






TO ARGUMENTS 




i"\ *f *f f\ 






* 
* 

♦ENTRY: ACCA= 
* XREC 


PIFFSFT TO 1 






1 




JE ADDED TO 16 BIT VALUE 
THE 16 BIT VALUE 






STACK 




0710 
0720 






^J r F uL X x V7 I 

5 POINTS TO 






ARGUMENT 
ADDRESS 




0730 
0750 




0114 


♦EXIT: XREG=OFFSET + 16 BIT 

* 
* 

SINDEX EQU ♦ 


r VALUE 




1 








STACK 










O OF ARGUMENT 
ec tc 




0760 


0114 


5F 


CLR B 




ZERO VALUE OF UPPER OFFSET BYTE 






5t T5 




0770 
0780 
0790 


0115 
0117 
0119 


ABOl 
E9 00 
36 


ADDA 
ADC B 
PSH A 


i,x 

X 


ADD OFFSET TO LOWER BYTE 




1 




ADD IN CARRY BIT TO UPPER BYTE 








PUT LOWER BYTE ON STACK 






ROUTINE tt 
t a ArrA 




0800 


011A 


37 


PSH B 




PUT UPPER BYTE ON STACK 






1 U ACL A 




0810 


011B 


30 


TSX 




POINT XTO STACKED VALUE 






0820 


one 


EEOO 


LDX 


X 


LOAD OFFSET + VALUE 
RESTORE STACK POINTER 






QC\ 1 KJT dtq 




0830 


011E 


31 


INS 








ADDRESS TO 




0840 


011F 


31 


INS 










NEXT 
INSTRUCTION 




0850 


0120 


39 


RTS 

<X> n "«»■ T^ ^1 "W T fWT f~\ ^.T fl^ TKlf 1_ 




AND RETURN 




( "" ) 


0860 






♦EXECUTION TIM fc. ArrnuA «± i uor-v/. 










RPUSH 








GETARG - GETARG is an excel- 


0880 






♦RPUSH SAVES THE MONTOR CALLER'S REGISTERS. 




lent example of straightforward 


0890 






♦STACK ORDER: 


XREG HI BYTE 




programming. The pointers to the 
caller's argument set are placed on 


0900 
0910 
0920 






* 

* 
* 


XREG LO BYTE 

CC 

ACCB 




the stack, the routine number is 


0930 






* 


ACCA 






in accumulator A, the program 








* 








counter Ion the stack from the 








* 








"JSR" to MONTOR) is modified, 


0950 






♦FIRST PAGE REQUIREMENTS 


: 




and GETARG returns. 


0960 






♦XSAV RMB 2 

* 


(TEMP STORAGE FOR X REGISTER) 




Fig. 6. GETARG. 


0980 




0121 


* 
RPUSH EQU 


* 








0990 


0121 


36 


PSH A 




STACK ACCA 




assumes in order to access the 


1000 


0122 


37 


PSH B 




AND ACCB 




■ if A 


1010 


0123 


07 


TPA 




GET CC REG 




callers arguments. An ex- 


1020 


0124 


36 


PSH A 




AND STACK IT 




planation of the format 


1030 


0125 


OF 


SEI 




DISABLE INTERRUPTS 




(Example 1) is in order at this 


1040 


0126 


DFOO 


STX 


XSAV 


SAVE CALLER'S X REG 




1050 


0128 


96 00 


LDA A 


XSAV 


GET X HI 




point. 


1060 


012A 


D6 01 


LDA B 


XSAV+1 


GET X LO 




# OF ARGUMENTS IN 


1070 


012C 


OE 


CLI 




REENABLE INTERRUPTS 






1080 


01 2D 


37 


PSH B 




STACK X LO 




LIST: This is a one-byte value 


1090 


012E 


36 


PSH A 




STACK X HI 




that specifies the number of 


1100 


012F 


30 


TSX 




POINT TO STACK 




argument sets being passed to 


1110 


0130 


EE05 


LDX 


5,X 


PUT RETURN ADX INTO X REG 




1120 


0132 


6E 00 


JMP 


X 


AND EFFECT A RETURN FROM SUBROUTINE 




the library routine by the 


1130 






♦EXECUTION TIME APPROX 56 USEC 




caller. It allows a library 
















routine to process more than 








RPOP 








a single operation at a time 
















and serves to reduce the over- 


1150 






♦RPOP RESTORES THE MONTOR CALLER'S REGISTERS. 




. — ■ • - II 


1160 






♦THE EXPECTED STACK ORDER IS: 




head of the monitor call 


1170 






♦ MONTOR RTRN ADX HI 






processor to a minimum by 


1180 






♦ MONTOR RTRN ADX LO 






allowing the caller to save up 


1190 
1200 






♦ XREG HI 

♦ XREG LO 








as many jobs as possible then 


1210 






♦ CC 






do them all at once. For 


1220 






♦ ACCB 








example, a multiple block 


1230 






♦ ACCA 

* 








punch routine can output as 








* 








many blocks of memory as 

- m ^^ ^^m ^^ \ ^^\ 9 


1250 
1260 


0134 


0134 
32 


RPOP EQU 

PUL A 


* 


GET RTRN ADX HI OFF STACK 




desired (up to 256). Since 


1270 


0135 


33 


PUL B 




AND LO 




each block can be any size, 


1280 


0136 


30 


TSX 




POINT INDEX TO STACK 




and different blocks need not 


1290 
1300 


0137 
0139 


A7 05 

E7 06 


STA A 
STA B 


5,X 
6,X 


PUT RTRN ADX HI INTO POSITION 
AND THE ADX LO FOR THE RTS 




be in any specific order in 


1310 


013B 


EEOO 


LDX 


X 


GET X REG OFF STACK 




memory, it is possible to be 


1320 


013D 


31 


INS 




MOVE STACK POINTER 




_^l • L • • ■ .*__. . . *■ ■* * ,«, _ 


1330 


013E 


31 


INS 




TO CORRECT POSITION 




very flexible in outputtmg 


1340 


013F 


32 


PUL A 




UNSTACK CC CONTENTS 




memory contents to the 


1350 


0140 


06 


TAP 




RESTORE CC 




system storage device. 


1360 
1370 


0141 
0142 


33 
32 


PUL B 
PUL A 




RESTORE ACCB 
RESTORE ACCA 




ARG LIST PTR: This is a 


1380 


0143 


39 


RTS 




AND RETURN 




two-byte address pointing to 


1390 






♦EXECUTION TIME APPROX 52 USEC 




the first argument set to be 








GETAR G 






k used by the library routine. 
















The argument set can be any- 


1410 






♦GETARG STACKS MONTOR CALLER'S ARGUMENT POINTERS 

55 





1420 






*THEN SETS ACCA TO THE ROUTINE #. 


thing required by the library 














routine, and in fact is defined 




1430 






♦ENTRY: STACK = 




by the library routine de- 




1440 






* MONTOR RTRN ADXHI 




pending on what information 




1450 






* MONTOR RTRN ADX LO 




the routine needs or returns. 




1460 






* XREG HI 








1470 






* XREG LO 




The argument set might be 




1480 






* CC 




two numbers to be multi- 




1490 
1500 






* ACCB 

* ACCA 




plied, or the address of a 




1510 






* » \mS V^ *» 

* ARGUMENT ADX HI 




block of data to be processed, 




1520 






* ARGUMENT ADX LO 




or whatever is needed. Since 
the argument set can be any- 




1530 






♦EXIT: STACK = 




where in memory, it is 




1540 






♦ #OF ARGUMENTS IN ARG LIST 


possible to have the calling 




1550 






♦ ARG LIST PTR HI 




H^k ^0^k m a m ■ ■ ■ 




1560 






♦ ARG LIST PTR LO 




program in ROM, the library 




1570 






♦ MONTOR ADX HI 




routine in ROM, and the 




1580 
1590 






♦ MONTOR ADX LO 

♦ XREG HI 




argument set somewhere off 




1600 






♦ XREG LO 




in RAM. The library routine 




1610 






♦ CC 




doesn't have to know where 




1620 
1630 






♦ ACCB 

♦ ACCA 




the system RAM is, or how 




1640 






♦ CALLER RTRN ADX HI 




the system is set up — all it 




1650 






♦ CALLER RTRN ADX LO 




needs to know is where to 
find the argument set, and 




1670 






*ACCA CONTAINS ROUTINE # 


that information is on the 














stack in the form of the ARG 




1690 




0144 


GETARG EQU ♦ 




LIST PTR. Incidentally, the 




1700 


0144 


30 


TSX 


SET POINTER TO STACK 


argument set can be bi- 




1710 


0145 


EE09 


LDX 9,X 


ARG POINTER TO X REG 


directional, passing informa- 




1720 


0147 


A6 02 


LDA A 2,X 


ARG ADX HI TO ACCA 




1730 


0149 


E6 03 


LDA B 3,X 


LO TO ACCB 


tion from the library routine 




1740 


014B 


37 


PSH B 


STACK LO 


to the caller as well. 




1750 


014C 


36 


PSH A 


STACK HI 






1760 


014D 


E6 01 


LDA B 1,X 


#ARGS TO ACCB 


The routine GETARG gets 




1770 


014F 


37 


PSH B 


AND STACK IT 


one last unit of information 




1780 


0150 


A6 00 


LDA A X 


SUBROUTINE #TO ACCA 


t . 1 II .1 m. 9 




1790 


0152 


30 


TSX 


X REG POINTS TO #ARGS ON STACK 


from the caller: the routine 




1800 


0153 


C6 04 


LDA B #4 


UPDATE CALR ADX LO 


number. The library routines 




1810 


0155 


EBOD 


ADD B 13,X 


ADD 4 TO CALR RETURN ADX 


are effectively an ordered 




1820 


0157 


E7 OD 


STA B 13,X 


AND RESTORE RESULTS 




1830 


0159 


24 02 


BCC *+4 


IF NO CARRY, RETURN 


table beginning with routine 




1840 


015B 


6C OC 


INC 12,X 


ELSE PROPAGATE CARRY TO UPPER 


#0 up to routine #127. 




1850 
1860 


015D 
015F 


EE03 
6E 00 


LDX 3,X 
JMP X 


AND EFFECT A RETURN 
FROM SUBROUTINE (RTS) 


GETARG picks out the 




1870 






♦EXECUTION TIME APPROX 70 USEC 


routine number and leaves it 














in accumulator A, then 










ASCEBC 




returns to MONTOR. 




1890 






♦ASCEBC CONVERTS AN ASCII BUFFER TO EBCDIC 


MONTOR's next opera- 




1891 






♦CAPITAL LETTERS ONLY ARE CONVERTED 










* 




tion is a check of the routine 










* 




number. Since it won't do to 




1900 
1910 
1920 






♦ENTRY: STACK = 

* MONTOR ADX HI (REFERENCE ONLY) 

♦ MONTOR ADX LO 


try executing a routine that 
isn't available, the subroutine 




1930 






♦ #ARGS IN LIST (DUMMY, 


NOT USED) 


number is checked for a value 




1940 
1950 






♦ ARG LIST ADX HI 

♦ ARG LIST ADX LO 




greater than the maximum 




1960 






♦ MONTOR RTRN ADX HI ( USED BY RTS) 


possible number of routines, 




1970 






♦ MONTOR RTRN ADX LO 

* 




in this case 127. If the ^H 
routine number is out of 




1990 






♦AT ARG ADX CALLER PROTOCOL IS: 


range, control is simply 




2000 
2010 






♦ BUFFER HI ADX 

♦ BUFFER LO ADX 




returned to the caller. When 




2020 






♦ #BYTES IN BUFFER 

* 






the routine number is in 
range, the starting address of 




2040 






♦EXIT: SPECIFIED BUFFER IS NOW EBCDIC 


the desired library routine is 




2050 






♦ NOTE: MAX BUFFER SIZE IS 256 (COUNT = 255) 


computed by SINDEX. 




2060 






♦BASE PAGE REQUIREMENTS: 








2070 






♦AEXSAV RMB 2 




The starting addresses of 




2080 






♦AENDX FDB AETAB 

* 

* 




the library routines are kept 

in a table called JMPTAB, ^H 




2100 




0161 


ASCEBC EQU ♦ 




and when SINDEX computes 




2110 
2120 


0161 
0162 


30 
33 


TSX 
PUL B 


SET POINTER TO STACK ARCS 
GET RETURN ADX HI 


the address of the requested 1 




2130 


0163 


32 


PUL A 


GET RET ADX LO 


routine, the routine number 




2140 
2150 


0164 
0166 


A7 06 
E7 05 


STA A 6,X 
STA B 5,X 


SET LO ON STACK 
AND HI 


is multiplied by two (because 




2160 


0168 


EE03 


LDX 3,X 


GET ARG POINTER 


each address is two bytes 




2170 
56 


016A 


33 


PUL B 


PULL DUMMY OFF STACK 


long) and added to the base 





address of the jump 


table, 


2180 


016B 


E6 02 




LDA B 


2,X 


GET BYTE COUNT 






JMPTAB. This resulting 


2190 


016D 


27 IE 




BEQ 


AERET 


RETURN IF ZERO BYTES 






2200 


016F 


EEOO 




LDX 


X 


DATA POINTER TO X REG 






address is returned 


in the 


2210 


0171 


A6 00 


AELOOP 


LDA A 


X 


GET ASCII CODE 






index (X) register bv 


2220 


0173 


2A02 




BPL 


ASCOK 


IF GOOD DATA, CONVERT TO EBCDIC 






/"» i iv i r~x r~ v/ r 




2230 


0175 


86 20 




LDA A 


#$20 


ELSE TREAT AS SPACE 






SINDEX for use oy 


2240 


0177 


80 20 


ASCOK 


SUB A 


#$20 


SET UP INDEX INTO TABLE 






MONTOR. 




2250 


0179 


2B 15 




BMI 


CRLFCK 


BRANCH TO CHECK CAR RET OR LINE FEED 




MONT OR executes 


► an in- 


2260 


017B 


OF 




SEI 




DISABLE INTERRUPTS 






_i _i • ■ i- 




2270 


017C 


DFOO 




STX 


AEXSAV 


SAVE DATA POINTER 






dexed jump to the sud- 


2280 


017E 


97 05 




STA A 


AENDX+1 


SET UP CONVERSION INDEX 






routine, which effectively 


2290 


0180 


DE04 




LDX 


AENDX 


INDEX TO X REG 






passes control to the 


library 


2300 






♦ERROR 15 IS EXPECTED AND ALLOWED IN THE NEXT INST. 






2310 






♦THE UPPER 8 BITS OF THE ADX ARE TRUNCATED 






routine. When the 


library 


ER15 1ine 2320 














routine finishes processina all 


2320 


0182 


A6 6F 




LDA A 


AETAB^C 


ADD LOWER 8 BITS OF TAB ADX TO X 






requested operations, 


. 


2330 






♦NOW THE 






it re- 


2340 


0184 


DEOO 




LDX 


AEXSAV 


RELOAD DATA POINTER 






turns control to MOIS 


2350 


0186 


OE 




CLI 




REENABLE INTERRUPTS 






Since everything is 


done at 


2360 


0187 


A7 00 


STORE 


STA A 


X 


STORE CONVERTED DATA 








2370 


0189 


08 




INX 




UPDATE POINTER 






this point, MONTOR 


reloads 


2380 


018A 


5A 




DEC B 




DECREMENT BYTE COUNT 










2390 


018B 


26 E4 




BNE 


AELOOP 


LOOP UNTIL DONE 










2400 


018D 


31 


AERET 


INS 




RESTORE STACK POINTER 










2410 


018E 


31 




INS 










SINDEX 




2420 


018F 


39 




RTS 




AND RETURN 














2440 
2450 


0190 
0192 


8B 20 
81 OA 


CRLFCK 


ADDA 
CMP A 


#$20 
#10 


RESTORE ORIGINAL CODE 
IS IT A CARRIAGE RETURN? 




( ENTER J 






' 1 ' 




2460 


0194 


26 04 




BNE 


LFCK 


IF NOT CHECK FOR LINE FEED 








2470 


0196 


86 OD 




LDA A 


#$0D 


EBCDIC CARRIAGE RETURN 








PULL 16 BIT 






2480 


0198 


20 ED 




BRA 


STORE 


B t M~-* ^*S *— *" A V*» ^~r * ■>*.%».*.■*,■;* ■» ^"^ m * 4V W *—» A- ^_/ & *» A ^ 








ADDRESS OFF 
STACK 






2490 
2500 
2510 
2520 


019A 
019C 
019E 
OlAO 


81 OD 
26 D7 
86 25 
20 E5 


LFCK 


CMP A 
BNE 
LDA A 
BRA 


#13 
ASCOK-2 

#$25 
STORE 


IS IT A LINE FEED 

IF NOT PROCESS AS SPACE 

ELSE CONVERT TO EBCDIC LINE FEED 






1 








a r\ r\ a o i t 










ADD 8 BIT 
ROUTINE tt TO 






2530 






♦EXECUTION TIME APPROX 80 USEC 








ADDRESS 






2540 






♦LOOP TIME APPROX 60 USEC PER CONVERSION 
EBCASC 






\ 


















PUT RESULTS 


























ON STACK 
































2560 
2561 

2570 
2580 






♦EBCASC CONVERTS AN EBCDIC BUFFER TO ASCII 

♦CAPITAL LETTERS ONLY ARE CONVERTED 

* 
* 

♦ENTRY: STACK = 

♦ MONTOR RTN ADX HI (USED FOR REFERENCE) 






1 








LOAD X REG 
FROM STACK 








~T 








( EX,T ) 




2590 






♦ MONTOR RTRN ADX LO 










2600 






♦ #OF ARGS IN LIST (DUMMY, NOT USED) 










2610 






♦ ARG LIST ADX HI 








^^ a a ■ av^k ■■■* ^ * tail 




2620 






♦ ARG LIST ADX LO 








SINDEX — What could De 


2630 






♦ MONTOR RTRN ADX HI (USED FOR RTS) 






simpler? SINDEX adds 


an eight 


2640 






♦ MONTOR RTRN ADX LO 








bit offset to the address of the 








* 












jump table "JMPTAB," leaves the 








* 












result in the X register, 


and re- 


2650 






♦AT ARG LIST ADX, CALLER PROTOCOL IS: 






turns. 




2660 
2670 






♦ BUFFER ADX HI 

♦ BUFFER ADX LO 








Fig. 7. SINDEX. 




2680 






♦ #OF BYTES TO BE CONVERTED 

* 






MM 




2700 






* 

♦EXIT: EBCDIC BLOCK IS CONVERTED TO ASCII 






FT^L/~ 




2710 






♦BASE PAGE REQUIREMENTS: 












2720 






♦EAXSAV RMB 


z 










\ 






2730 
2750 




01A2 


♦EANDX 

* 

* 
EBCASC 


FDB 
EQU 


EATAB 

* 








PULL CC REG 
OFF STACK 
















2760 
2770 


01A2 
01A3 


30 
33 

o * ■ 




TSX 
PUL B 

T"fc T T X A 




SET POINTER TO ARG ADX 
RTRN ADX HI OFF STACK 






I 
















2780 


01A4 


32 




PUL A 




CiET LO OFF S1ACK 








PULL 
ACCUMULATORS 






2790 


01A5 


A7 06 




STA A 


6,X 


PUT RTRN ADX ON STACK 








OFF STACK 






2800 
2810 


01A7 
01A9 


E7 05 
33 




STA B 
PUL B 


5,X 


AND ADX HI 

PULL DUMMY OFF STACK 




















2820 


01 AA 


FF 03 




LDX 


3,X 
2,X 


LOAD ARG ADX 








PULL 






2830 


01AC 


E6 02 




LDA B 


GET BYTE COUNT INTO ACCB 








X REGISTER 
OFF STACK 






2840 
2850 


01AE 
01B0 


27 42 
EEOO 




BEQ 
LDX 


EARET 
X 


IF ZERO RETURN 
LOAD DATA POINTER 










2860 


01B2 


A6 00 


EALOOP 


LDA A 


X 


GET DATA BYTE 






( EX ' T ) 




2870 


01B4 


81 CO 




CMP A 


#$co 


IS DATA IN UPPER TABLE BLOCK? 








2880 


01B6 


24 22 




BCC 


UPRBLK 


IF SO, DO IT 










2890 


01B8 


81 80 




CMP A 


#$80 


ELSE CHECK IF IN LOWER BLOCK 






RPOP - RPOP recalls 


the pre- 


2900 


01BA 


25 16 




BCS 


LWRBLK 


AND PROCESS IF IN TABLE 






viously saved caller's 


registers 


2910 


01BC 


81 OD 


EAERR 


CMP A 


#$0D 


CHECK IF EBCDIC CAR RET 






from the stack, and returns. The 


2920 


01BE 


26 04 




BNE 


ALFCK 


IF NOT CHECK FOR LINE FEED 






rather cryptic name is an abbre- 


2930 


01C0 


86 OA 




LDA A 


#10 


CONVERT TO ASCII CAR RET 






viation for "register pop 


" which 


2940 


01C2 


20 28 




BRA 


STORA 

#$25 








is exactly what this routine does. 


2950 


01C4 


81 25 


ALFCK 


CMP A 


IS IT A LINE FEED? 










2960 


01C6 


26 04 




BNE 


MKSPC 


IF NOT,TREAT AS SPACE 










2970 


01C8 


86 OD 




LDA A 


#13 


ELSE CONVERT TO ASCII LINE FEED 






Fig. 8. RPOP. 




2980 


01CA 


20 20 




BRA 


STORA 

• 


RESTORE IT 


57 1 





2990 01CC 86 20 
3000 01CE 20 1C 


MKSPC 


LDA A #$20 CONVERT TO ASCII SPACE 
BRA STORA 


the caller's registers from the 




3010 01D0 20 OE 




BRA LOAD AND CONVERT TO ASCII 


stack by calling RPOP (refer 




3020 01D2 81 


3F 


LWRBLKCMP A #$3F IS BYTE IN TABLE RANGE? 


to the RPOP flow diagram), 




3030 01D4 25 E6 
3040 01D6 80 40 




BCS EAERR IF NOT CONVERT TO SPACE 
SUB A #$40 ELSE PROCESS AS IS 


and program control is passed 




3050 01D8 20 


06 




BRA LOAD DO IT 


back to the caller. 




3060 01DA 81 


FA 


UPRBLK CMP A #$FA IS IT IN TABLE? 






3070 01DC 24 


DE 




BCC EAERR IF NOT TREAT AS SPACE 






3080 01DE 80 


80 




SUB A #$80 ELSE TREAT AS IS FOR UPPER BLOCK 


The Interface 




3090 01E0 OF 
3100 01E1 DFOO 


LOAD 


SEI DISABLE INTERRUPTS 
STX EAXSAV SAVE DATA POINTER 


Actually, the subtitle is 




3110 01E3 97 


03 




STA A EANDX+1 SET UP INDEX LOWER BYTE 


somewhat misleading, in that 




3120 01E5 DE02 




LDX EANDX LOAD UP INDEX 


there are actually two inter- 




3130 




♦AN ERROR 15 IS EXPECTED AND ACCOUNTED FOR NEXT LINE 


faces. The first interface 




3140 




♦THE UPPER 8 BITS ARE TRUNCATED WHICH IS DESIRED 




ER151ine 3150 








exists between the caUer and 




3150 01E7 A6F5 




LDA A EATAB,X LOAD CONVERTED BYTE FROM TABLE 


MONTOR while the second 




3160 01E9 DEOO 




LDX EAXSAV RELOAD DATA POINTER 


III V-/ 1 1 1 V— / 1 1 f vv 1 1 1 1 V/ L 1 1 \s Own-* KJ 1 IVJ 




3170 01EB OE 






CLI REENABLE INTERRUPTS 


is between MONTOR and the 




3180 01EC A7 00 


STORA 


STA A X RETURN CONVERTED BYTE TO BUFFER 


library routine. Typically, a 




3190 01EE 08 
3200 01EF 5A 






INX BUMP DATA POINTER 
DEC B DECREMENT BYTE COUNT 


w m 1 / w 

call to MONTOR requesting 




3210 01F0 26 CO 




BNE EALOOP LOOP UNTIL DONE 


two eight-bit numbers to be 




3220 01F2 31 
3230 01F3 31 




EARET 


INS RESTORE STACK 
INS 


multiplied by routine number 




3240 01F4 39 






RTS AND RETURN 


twelve (multiply routine) 




3250 




♦EXECUTION TIME APPROX 115 USEC 


might look like Example 2. 




3260 




♦LOOP TIME APPROX 70 USEC PER CONVERSION 

* 


The bracketed instructions 








* 




are the fixed format to use 




3280 




♦EATAB: 


EBCDIC TO ASCII TRANSLATION TABLE 


when calling any library 




3290 
3300 




♦ARRANGED IN TWO BLOCKS;$40— $7F,$C0— $F9 
♦TOTAL SIZE OF TABLE: 122 BYTES 


routine; it is the same format 








* 


• 


no matter what information 




3320 01F5 


* 
EATAB 


EQU ♦ 


the library routine requires. 




3330 01F5 20 






FCB $20,$20,$20,$20,$20,$20 


What does change from 




01F6 20 








routine to routine is the in- 




01F7 20 
01F8 20 






• 


formation that gets stored at 




01F9 20 








the argument set address. In 




01FA 20 








the example above, not only 




3340 OlFB 20 
OlFC 20 






FCB $20,$20,$20,$20 


the two numbers to be multi- 




01FD 20 








plied are at the argument set 




01FE 20 








address, but the final result is 




3350 01FF 5B 






FCB $5B,$2E,$3C,$28,$2B,$5D 


1 r . . 1 l 




0200 2E 








left there also. 




0201 3C 








In the routines I've 




0202 28 

0203 2B 








supplied as examples, only 




0204 5D 








the address of the data blocks 




3360 0205 26 
0206 20 






FCB $26,$20,$20,$20,$20 


is at the argument set address. 




0207 20 








This allows the same routine 




0208 20 








to specify different blocks of 




0209 20 
3370 020A 20 






FCB $20,$20,$20,$20,$20 


data to be operated on. 




020B 20 








Simply change the data block 




020C 20 








address which is stored at the 




020D 20 
020E 20 








argument set address. 




3380 020F 21 






FCB $21,$24,$2A,$29,$3B,$5E 


At the other end of the 




0210 24 
021 1 2 A 








monitor call processor is the 




0212 29 








MONTOR-library routine in- 




0213 3B 








terface. This format is only 




0214 5E 
3390 0215 2D 






FCB $2D,$2F,$20,$20,$20 


necessary to know if you 




1 0216 2F 








intend to write utility rou- 




0217 20 








tines for the library, and is 




0218 20 

0219 20 








irrelevant information when 




3400 021A 20 






FCB $20,$20,$20,$20,$20 


you are just using the library 




021B 20 
021C 20 
021D 20 








routines. To see what needs 










to be done, study the con- 




021E 20 








tents of the stack carefully 




3410 021F 20 
0220 2C 






FCB $20,$2C,$25,$5F,$3E,$3F 


(Example 1), then read the 




V^ M mm V mm X_»/ 

0221 25 








discussion that follows. 




0222 5F 








The first operation neces- 




0223 3E 








• 1 




0224 3F 








sary is to set up the return 




3420 0225 20 






FCB $20,$20,$20,$20,$20 


address on the stack. The 




0226 20 

0227 20 

0228 20 








correct return address con- 










sists of the top two entries on 




0229 20 

| 58 








the stack, MONTOR Return 




MICROPROCESSORS 

FROM CHIPS TO SYSTEMS 

Rodnay Zaks 

420pp, 150 illustr, ret C201 3>iJ.a O 

Our Bestseller. This book Is the result of the 
author's experience in teaching microprocessors 
to more than 2000 persons. It presents a com- 
prehensive introduction to all the aspects of 
microprocessors, from the components to the 
assembly of a system. The difficulty of each 
chapter is graduated from the basic concepts 
to the actual technical details. It is read by 
students, technicians, managers, engineers, 
educators, doctors and by all those who wish to 
understand rapidly and efficiently all the important aspects 
of microprocessor use, selection, or application. 
CONTENTS: Fundamental Concepts... Internal Operation of a 
Microprocessor... System Components... Comparative Micro- 
processor Evaluation... System Interconnect... Microprocessor 
Applications... Interfacing Techniques... Microprocessor Pro- 
gramming... System Development... The Future... 



MICROPROCESSOR 

INTERFACING 

TECHNIQUES 

Austin Lesea, Rodnay Zaks 

350pp, 320 illustr, ret C207 $9.95 



MICROPROCESSOR 

INTERFACING 

TECHNIQUES 






FROM KEYBOARD TO FLOPPY DISK: All the 
basic concepts and techniques for assembling 
a complete microcomputer system are presented 
in detail, with over 320 illustrations or diagrams, 
including teletype, keyboard, floppy disk, CRT 
display, analog / digital interfacing. One chapter 
is dedicated to the bus standards, including 
S100, and IEEE488, and one chapter to testing 
and debugging. 

CONTENTS: Introduction... Assembling the Central Processing 
Unit... Basic Input-Output... Interfacing the Peripherals... Analog 
Conversion... Bus Standards... Case-study: a 3 2 -channel Multi- 
plexer... Digital Trouble-Shooting... Conclusion-Evolution. 

DISTRIBUTION /TRANSLATION INQUIRIES INVITED 



- 



ALSO AVAILABLE: MICROPROCESSOR 

• VOL I: 8-BITS, ref E8 $15.00 

• VOL II: BIT-SLICE, ref E5 $15.00 

TO ORDER 

• BY PHONE: call (415) 848-8233 
BankAmericard/Mastercharge accepted 

• SHIPPING: no charge when payment 
included. 

ADD: $1.00/ book for fast shipping. 

• TAX: in California, add sales tax. 

• OVERSEAS: 66 French Francs. Write to: 
SYBEX-EUROPE, 313 rue Lecourbe 
75015 - PARIS, France Te I :( 1)8282502 



ENCYCLOPEDIA 



SYBEX 



2161 Shattuck Ave. 
Berkeley, Ca 94704 
Tel: (415) 848-8233 



NAME 



_POSITION 



COMPANY 

ADDRESS 

CITY STATE/ZIP 

□ Send me: DC201 DC207 □ Other: 

□ Payment enclosed D Bill company D Bill me 

ADD $1.00 / BOOK FOR FAST SHIPPING 

□ charge my n Visa n Master charge 

□ Number Exp date 

Signature □ Send catalog. 




We can run your off 
for less than what it 
cost you to buy 
a turkey sandwich. 

For just $1 .50 an hour amortized over 
a 5 year period on a lease plan your 
business will function more efficiently 
& economically. 

We haye developed a system that not only answers the 
business man's dream of a perfectly functioning office, but 
a system that gives him the assurance of long lasting 
quality and performance into the future. Since perfor- 
mance and quality is what we are all about, for this purpose 
we now have available the Micro Executive One , Two, Three . 
These systems can perform just about any business function for 
you. 

Do yourself a favor and contact one of our consultants and 
see if this isn't just about the best way to solve your busi- 
ness problems. 



Glmix. Inc. 

Icom 

Industrial Micro Systems 

International Data Systems, Inc 

Lear Seigler 

Micro Computer Business Systems 
Micro Term, Inc. 
Midwest Scientific, Inc. 
North Star Computers 
Newtech Computer Systems 
Oliver Audio Engineering 
Polymorphic Systems 



Sanyo Electronic, Inc. 

Seals Electronics 

Smoke Signal Broadcasting 

Southwest Technical Products Corp. 

Technical Design Labs 

Vector Graphics 



BALTIMORE 

4005 Seven Mile Lane 

Baltimore, Md. 21208 

(301 ) 486-5350 KANSAS CITY 

6 East Street 
Parkville, Mo. 641 52 
(816)741-5055 



REPRESENTING: 

Alpha Microsystems 
Compucolor Corp. 
Cromemco 
Digital Systems 



PITTSBURGH 

Robar Building 

4170 Wm: Penn Highway 

Murraysville, Pa. 1 5660 

(412)327-0455 




We offer our clients 
TOTAL SYSTEMS 
ENGINEERING: 



THE 

COMPUTER 

WORKSHOP 



Evaluation and development of requirements for data processing software 

and associated hardware 

Complete services for computer application design 

Development of new computer systems 

Microprocessor application development 

Management assistance in the development of data processing systems 

System analysis In the area of business, engineering, and scientific 

applications 

Contract programming 

Design, organization, and management of customized training programs for 

systems, programming, and user staff 



WASHINGTON, D.C. AREA 

1776 Plaza 

1 776 E. Jefferson Street 

Rockvllle, Md. 20852 

(301)468-0455 

NORTHERN VIRGINIA 
5240 Port Royal Road 
Suite 203 

Springfield, Va. 22151 
(703)321-9047 



C31 



59 





3430 022A 20 
022B 20 


FCB $20,$20,$20,$20,$20 


Adx HI (and LO). In order to ^M 




022C 20 
022D 20 
022E 20 




maintain stack continuity, 
this address must be placed 




3440 022F 3A 

0230 23 

0231 40 

0232 20 


FCB $3A,$23,$40,$20,$3D,$22 


into the RTS Adx HI (and 
LO) for the library routine's 
return from subroutine in- 




0233 3D 




struction (RTS). In assembly 




0234 22 

3450 0235 20 

0236 41 


FCB $20,$41,$42,$43,$44 


language form the sequence 
to follow is shown in 




0237 42 

0238 43 

0239 44 




Example 3. 

Now the routine needs to 




3460 023A 45 
023B 46 
023C 47 
023D 48 


FCB $45,$46,$47,$48,$49 


gain access to the argument 
set pointer and the number of 
argument sets. This is accom- 




023E 49 

3470 023F 20 

0240 20 


FCB $20,$20,$20,$20,$20,$20 


plished by the sequence in 
Example 4. 




0241 20 




At this point, accumulator 




0242 20 

0243 20 

0244 20 




A gives us the count of the 
argument sets, and the index 




3480 0245 20 

0246 4A 

0247 4B 

0248 4C 


FCB $20,$4A,$4B,$4C,$4D 


register points to the first 
argument set (if there is more 
than one). Executing a return 




0249 4D 

3490 024A 4E 

024B 4F 


FCB $4E,$4F,$50,$51,$52 


from subroutine (RTS) at this 
point will return control to 




024C 50 




the caller via MONTOR, but 




024D 51 

024E 52 

3500 024F 20 

0250 20 


FCB $20,$20,$20,$20,$20,$20 


normally it is at this point 
that the library routine would 
begin to process the data sup- 




0251 20 

0252 20 

0253 20 




plied by the caller and now 
pointed to by the index 




0254 20 

3510 0255 5C 

0256 20 


FCB $5C,$20,$53,$54,$55 


register. 

You needn't follow this 




0257 53 




sequence exactly when 




0258 54 

0259 55 
3520 025A 56 

025B 57 


FCB $56,$57,$58,$59,$5A 


writing a library routine, but 
if you deviate from this for- 
mat use caution because 




025C 58 
025D 59 
025E 5A 




mangling the stack order can 
produce some pretty bizarre 




3530 025F 20 

/*\ *"> a* *"* fk ^"v 


FCB $20,$20,$20,$20,$20,$20 


results. If, for instance, your 




0260 20 

0261 20 




routine needs to keep the 




0262 20 




argument pointer for later use 




0263 20 

0264 20 
3540 0265 30 

0266 31 


FCB $30,$31,$32,$33,$34 


(specifically, multiple argu- 
ment routines such as 
MOVBLK, a multiple 




0267 32 

0268 33 

0269 34 




memory block move routine 
in the works), the two INS 




3550 026A 35 


FCB $35,$36,$37,$38,$39 


instructions should be moved 




026B 36 
026C 37 




to the end of your routine so 




026D 38 




the pointer is not destroyed if 




026E 39 




an interrupt occurs during the 






* 
* 


routine's execution. 




3570 
3580 
3590 
3600 
3610 
3620 


♦AETAB: ASCII TO EBCDIC TRANSLATION TABLE 

"ORGANIZED AS ONE CONSECUTIVE TABLE 

♦SUBTRACTING $20 FROM THE ASCII CODE AND 

*ADDING THE RESULT TO THE TABLE BASE ADDRESS 

♦WILL GIVE THE ADDRESS OF THE CORRESPONDING EBCDIC CODE 

♦TOTAL TABLE SIZE: 64 BYTES 

* 


The Utility Library 

1 have a multitude of ideas 
about a utility library, but 
I'm sure many of you have 




3640 026F 
3650 026F 40 
0270 5A 


* 
AETAB EQU * 

FCB $40,$5A,$7F,$7B 


good ideas on this also, so I'll 
hold myself in check as much 
as possible here. Dick Wilcox 




0271 7F 

0272 7B 




had several ideas on the types 




3660 0273 5B 

0274 6C 

0275 50 

0276 7D 


FCB $5B,$6C,$50,$7D 


of routines to put into a 
utility library, and with a 
repertoire of up to 127 




3670 0277 4D 


FCB $4D,$5D,$5C,$4E 


routines which can call each 




0278 5D 
60 


• 


other to build more and more 





elaborate functions, the 


0279 5C 
027A 4E 










utility library can become a 


3680 027B 6B 




FCB 


$6B,$«0,$4B,$61 




very powerful system tool. 


027C 60 

a* i™* pm t™v An 










Some routines that 1 see as 


027D 4B 
027E 61 










being generally useful have 


3690 027F FO 




FCB 


$F0,$F1,$F2,$F3 




been included with the 


0280 Fl 

4~\ O O "1 f?0 










MONTOR listing, and the 


0281 rZ 

0282 F3 










flowcharts have also been 


3700 0283 F4 




FCB 


$F4,$F5,$F6,$F7 




included for those of you 


0284 F5 

0285 F6 










interested in the guts of the 


0286 F7 










routines. I've commented the 


3710 0287 F8 




FCB 


$F8,$F9,$7A,$5E 




listings rather verbosely for 


0288 F9 

0289 7A 










just such a case, but then 1 


028A 5E 










feel that the gut workings of 


3720 028B 4C 




FCB 


$4C,$7E,$6E,$6F 




a routine comprise knowledge 


028C 7E 
028D 6E 










that the monitor call 


028E 6F 










processor makes unnecessary. 


3730 028F 7C 
0290 CI 




FCB 


$7C,$C1,$C2,$C3 




You should be able to plug 


^^ M %^ ^^ ^m^ ^» 

0291 C2 










these routines into your 


0292 C3 










_i ■ 


3740 0293 C4 




FCB 


$C4,$C5,$C6,$C7 




system and go! 


0294 C5 










There are some other 


0295 C6 

yv *"^ /~\ f* 4^ PV 










types of routines that can be 


0296 C7 
3750 0297 C8 




FCB 


$C8,$C9,$D1,$D2 




very useful in program and 


0298 C9 










system development, such as: 


0299 Dl 
029A D2 












3760 029B D3 




FCB 


$D3,$D4,$D5,$D6 




1 . A system initialization 


029C D4 










routine to set up I/O devices, 


029D D5 
029E D6 










the system clock, software 


3770 029F D7 




FCB 


$D7,$D8 % $D9 % $E2 




pointers, etc., when the 


02A0 D8 
02A1 D9 










system is reset. 


02A2 E2 










2. Interrupt-driven input and 


3780 02A3 E3 
02A4 E4 




FCB 


$E3,$E4,$E5,$E6 




output routines that allow 


02A5 E5 










the processor to execute pro- 


02A6 E6 
3790 02A7 E7 




FCB 


$E7,$E8,$E9,$4A 




grams while a peripheral is 


02A8 E8 










busy (no waiting on slow 


02A9 E9 










devices). 


02AA 4A 
3800 02AB EO 




FCB 


$E0,$4F,$5F,$6D 




3. A general timekeeping 


02AC 4F 










routine that services the 


02AD 5F 
02AE 6D 










system clock and maintains a 






J MPT A B 




real time clock with seconds, 












minutes, hours, and day/date. 


3820 


♦JMPTAB 


\: MONITOR SUBROUTINE LIBRARY TABLE 




1 1 1 II 1 »^ W** %J f ■ ■ ^* ™™ • ^^ w ^^ W 


3830 


♦EACH SUB IS REFERENCED EXTERNALLY BY NUMBER 




4. A snapshot routine that, 


3840 


♦BUT LISTED BY NAME IN THE TABLE 




when armed, can sample the 


3850 


♦JMPTAB MAY BE PLACED ANYWHERE IN MEMORY AS CONVENIENT 




program counter periodically 


3870 02AF 


JMPTAE 


\ EQU 


* 




on interrupt and return a 


3880 02AF 0161 




FDB 


ASCEBC CALL RTN 




I WwftPfTWR of program execu- 


3890 02B1 01A2 
3930 02B3 




FDB 
RMB 


EBCASC CALL RTN 1 
♦— JMPTAB+256 




tion. (Did you ever wonder 


3940 


♦INSERT NEW ROUTINES IN FRONT OF THE RMB DIRECTIVE 




just where in a program your 


3950 03B7 




END 








Stack Contents upon entry to Library Routine 


- 




STAA ARGLIST (Put away multiplicand) 
















STAB ARGLIST+1 (Put away multiplier) 








— MONTOR Return Adx HI 






/ JSR MONTOR 








— MONTOR Return Adx LO 






FCB 12 (Call Multiply Routine) 








— # Arguments in Argument List 






1 FCB 1 (Multiply only 1 set of #s) 








— ARG LIST PTR HI 








I FDB ARGLIST (Give address of arguments) 








— ARG LIST PTR LO 








LDX ARGLIST (Pick up 16 bit product in X) 








— RTS Adx HI 
















— RTS Adx LO 








Example 2. MONTOR format. 








Example 1. i 


Library format. 














PUL A (Strip MONTOR Adx HI off stack) 
PUL B (Strip MONTOR Adx LO off stack) 
TSX (X register points to stack) 
STAA 3,X (Set up «RTS' Adx HI) 




PUL A (ACC A now contains # of arguments) 
LDX 1,X (X REG now points to argument set) 
INS (Move SP up to 'RTS* address) 








STAB 4,X (Set up 'RTS' Adx LO) 






INS 








Example 3. 






Example 4. 














61 





processor spends all its time? 
Tighten up a few loops and it 
is easily possible to double 
your processor's throughput.) 

5. Math functions. 

6. Extended formatting 
routines to maintain files and 
records on the system mass 
storage device. 

7. Conversion routines for in- 
put or output with periph- 
erals using different character 
code sets. 

8. A high-speed sorting 
routine. 

9. A search routine. 

10. A compare routine. 

Some other utility 
routines I'm currently in- 
volved in developing are a 
high-speed sorting algorithm 
and a G.P.I.O. processor 
which will talk on the 
I.E.E.E. 488 standard parallel 
interface bus. I'd really like 
to see the monitor call pro- 
cessor used by a lot of you 
6800 programmers; it seems a 
real waste for everybody to 
keep reinventing the wheel. 

I find programming to be 
very much like chess: intense, 
challenging, and rewarding to 
do, but rather dull to study. 
With a library of good system 
routines which don't require 
a lot of intense study in order 
to implement them on a new 
system, programming can be 
that much more enjoyable 
. . . f or us all! ■ 



S00600004844521B 



S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

S 

s 
s 
s 
s 
s 
s 
s 



1300020 1F5026F0 2AFEB0 1A900 3 7 36 30EE00318 1 
05001231397E 

130 1008D1F8D40 4D2B0A4 8CE0006 8D07EE00ADA5 

130 1 100 08D2 139 5FAB0 1E90 036 37 30EE003 131 13 

130 120 39 36 3 70 7 36 0FDF0 09600D60 10E37 36 30E2 

130 130EE0 56E00323330A70 5E70 6EE00313132AA 

130 140 06 3 332 39 3 0EE09A60 2E6 3 37 36E60 137C4 

130 150A600 30C604EB0DE70D24 02 6C0CEE0 36E12 

130 160 00 30 3332A706E70 5EE0 33 3E6 022 7 1EEE1E 

130 17000A60 02A0 2 86 20 8 02 2B150FDF00 9 70 599 

130 180DE04A6 6FDE0 00EA70 85A26E4313139DA 

1301908 B2 0810A2604860D20 ED 810D26D7862525 

130 1A02 0E5 30 3332A70 6E70 5 33EE0 3E60 22 742A3 

130 1B0EE0 0A60081C0242281802516810D2 6042C 

1301C0860A202881252604860D20208620201CCE 

130 1D02 00E8 13F2 5E6 804020 06 8 1FA2 4DE80 80BF 

130 1E0 0FDF009 70 3DE02A6F5DE0 00EA7000 85A13 

1301F026C0313139202020202020202020205BDF 

1 30 2002E3C282B 5 D2 62020202020202020202 169 

1 30 210242A29 3B5E2D2F2 02020202020202020 4E 

1 30 2202C255F3E3F 20202020202020202020 3A23 

130 2 30 234020 3D2220414243444546474849202B 

130 2402020202020204A4B4C4D4E4F505152200C 

130 25020202020205C20535455565758595A20AA 

130 260202020202030313233 34 35 36373839409D 

130 2 70 5A7F7B5B6C5 7D4D5D5C4E6B6 4B6 1F0D7 

130 2 80F1F2F3F4F5F6F7F8F9 7A5E4C7E6E6F7CD2 

130290C1C2C3C4C5C6C7C8C9D1D2D3D4D5D6D7A1 

130 2A0D8D9E2E3E4E5E6E7E8E9 4AE04F5F6D0 12 7 

0602B06101A243 



S9030000FC 



Program B. Object code. Motorola format. 



IMMMI*"'""'" M ""'""' MMM "' , " '"'« 
nrvvvtwwvtwtvttvTttttMttt 



« 



* 



a#« e 
t 00 

0000 
00 











e 







000000 

NATIONWWE CLASSIFIED At? NEWSLETTER 
MAILED Ut CLASS EUERV THREE WEEKS 

K MMMMMMMW lim i ll l l ■■ f— ——»——— | 

ARE YOU LOOKING FOR? 

- LOW COST USED COMPUTER EQUIPMENT 

" " NEW " " " " 

- ADVANCED INFORMATION ON NEW PRODUCTS 

- NEW SOFTWARE: UTILITIES/BUSINESS/etc. 

- A WAY TO ASK FOR INFORMATION OR AID 

- INFORMATION ON COMPUTER CLUB MEETINGS 

IT'S ALL IN ON. .LINE ! 



» 



* 



— — — » »l l »MM «»tl l HHHHHHIHI Mil ■■ ■ ■ ■■» 

• 18 ISSUES (1 Yr.)-$3.75 36 ISS„-$7.00 * 
Sample, on ie.qu.eAt, ox. added to *ubi>cAsLp. 



» 
» 
# 
# 
# 



» 

95030 • 
02 * 

rwwwwwwwwwwinrinrinnririnrinnrwinnrinrviMnr 



24695 SANTA CRUZ HWY. 
LOS GATOS, CA 



APPLE 
OWNERS 



Interactive Blockade game for two 
people. Blockade requires 8K of memory. 
Hardware consists of two game control 
boxes with 5 feet of cable. Each box 
has four micro switches and specially 
designed printed circuit board completely 
assembled. Software allows choice of 
game speed and game points. 

Game controls and software — $39.95. 

Guaranteed 30 day delivery from 
receipt of money. Allow time for process- 
ing personal checks. Send check or 
money order to: 

B & G Enterprises 
P.O. Box 59364 
Northhaven Sta. 
B28 Dallas, Tx. 75229 



"\ 



PROFESSIONAL QUALITY 
AUDIO CASSETTES 
■^^FOR TARBELL,DGS ,KC ,ETC 
DON'T WASTE YOUR MONEY 
^ ON CHEAP TAPES. 
O EXTENSIVE TESTING HAS 
RESULTED IN SELECTION 
■OF THIS TAPE FOR BAUD 
RATES IN EXCESS OF 1200 

SUPER HIGH DENSITY 
HIGH FREQUENCY RESPONSE 
LOW NOISE. SIGNAL TO 
NOISE RATIO 5^ DB 
— TENSILIZED POLYESTER 
B BASE .69 MILS THICK 
SONIC WELDED CASSETTE 
O 30 MIN TAPES 3 AT $5-50 
10-$15. 50,25-$35.00 PPD 
** — PITTS ENTERPRISES 
1516K BOWEN ST. 
LONGMONT, CO. 80501 
P24 j 



62 



TIMESHARING 

The 80-1 03A works both ways. Your system can call a timesharing service and communicate as an intelligent 
terminal OR your S-100 system can be the timesharing system where the 80-103A answers the phone and 
communicates with terminals or other processors. 



80-103A DATA COMMUNICATIONS ADAPTER 




The 80- 103A DATA COMMUNICATIONS ADAPTER was developed to function as an S-100 bus 
compatible serial interface incorporating a fully programmable modem and Telco interface. These 
functions are usually accomplished by the use of two separate modules: 1) a serial I/O board, and 
2) an external modem. By combining these features on a single board, the 80-103 A can offer 
microcomputer applications significant cost/performance advantages over other implementations. 



• FULLY PROGRAMMABLE FEATURES 

• AUTOMATED DIALING AND AN- 
SWER 

• ORIGINATE OR ANSWER MODE 

• 1 10-300 BIT/SEC DATA RATES 

• CHARACTER FORMAT AND PARITY 

• ERROR DETECTION 

• FULLY BUFFERED, OUTPUTS DRIVE 
25 S-100 BUS LOADS 

DC Hayes Associates offers a full range of capabilities 
for solving your information handling problems. 
Whether your problem is large or small, we will apply 
innovative techniques for finding the best solution. 
Contact us about our products and services. 



STANDARD U.S. FREQUENCIES 
FULL TELCO COMPATIBILITY WHEN 
ATTACHED TO DAA 
COMPATIBLE WITH EXISTING TELE- 
TYPES AND TIME SHARING MODEMS 
ALL DIGITAL MODULATION AND 
DEMODULATION. NO ADJUSTMENTS 
REQUIRED. 

PRICES: 

Assembled 80-1 03A with 48 hour burn in 
and 90 day warranty is $279.95 

Bare Board with manual is $49.95 

ACCEPTED 



BANKtMEMURO 



VISA 






H20 




P.O. Box 9884 • Atlanta, Georgia 30319 • (404) 231-0574 




63 



Memory Debugging 



which chip is it? 



0C80 - 0C85 



0C86 - 0C89 
0C8A 
0C8B - 0C8C 

0C8D -0C8F 

0C90 

0C91 -0C93 
0C94 - 0C9D 

0C9E - 0CA1 

0CA2 - 0CA4 
OCA5 - 0CA6 
0CA7 - 0CA9 

OCAA -0CB5 



OCB6 - OCBC 



Set lowest and highest addresses to be 

checked. It is best to confine testing to 

one board at a time as program execution 

time increases exponentially with the 

number of locations checked. 

Enter maximum and minimum numbers to 

be stored and checked. 

Reset the carry flag as we will need it 

later. 

Move the number to be stored to the 

memory location indicated by HL, and 

then see if it was actually held there. 

If it was not accepted, stop the program. 

The row location of the bad chip can be 

found in HL. 

Move the 1 bit one place to the left 

in preparation for testing the next bit 

in memory. 

If we haven't moved the bit into the carry 

flag, go back and store it in memory. 

Find out if we have checked all the 

locations we wanted to. If not, jump 

to the cross-feed checkout routine. 

If we have checked all locations, HALT 

and make sure that an interrupt has not 

interfered with the HALT. 

Store the last memory location in a place 

we are not using or testing. 

Check to see if 80 is still in the last 

location. 

If it isn't, HALT. The location held in 

HL is the receiver of the cross feed, and 

the location held in 0CC1 is the sender. 

Check to see if we have worked our way 

back to the beginning of the RAM board. 

If we haven't, drop down one more location 

and check again for cross feed. 

If we have gone all the way to the beginning, 

return our original HL and go back to 

the memory-acceptance part of the program. 

Table 1. Program explanation. 



Albert Brunei) 7 

RFD#1 

Berlin NH 03570 



The idea of checking RAM 
boards first occurred to 
me after I had assembled my 
Polymorphic Systems Poly 88 
System 6 and was running 
some of the sample programs 
in BASIC. One program 
would not run correctly be- 
cause a wrong symbol was 
entered on one line. I tried 
changing the line to the 
correct symbol, but the same 
error recurred. By changing 
the symbol entered at the 
location of the error and 
noting the result that ap- 
peared after a LIST instruc- 
tion, I was able to determine 
that a number was perma- 
nently stored in one of the 
RAM locations and was being 



added to whatever I entered. 
The next problem was to 
find the location of the bad 
memory chip. To do this, I 
wrote a short program in 
machine language that would 
put 00 hex in each location 
and then check to see if it 
could be brought back. The 
program worked and told me 
that the bad location was 
4C97, and that the number 
permanently stored was 02. 
The problem now was to find 
the chip that held that loca- 
tion and that number. 

The literature that came 
with the RAM board was 
some help. It informed me 
that the chips were 1K x 1 
and that the addresses and 
bits were arranged by row 
and column. Since it did not 
specify top, bottom, right or 
left, I had to move chips 
around in suspected areas 
until the location of the error 
moved. This was a tedious 
process. It need not be re- 
peated, as I have included the 
chip arrangement in Fig. 1. 

After a call to Microcom- 
puters Inc. in Nashua NH, I 
discovered that there were 



64 



~ L 

MEMORY ADDRESS 
(MUST BE ADDED TO 
DIP SWITCH ADDRESS) 






Step no. 

OC80 

OC81 

OC82 

OC83 

0C84 

OC85 

OC86 

OC87 

OC88 

0C89 

OC8A 

0C8B 

0C8C 

OC8D 

OC8E 

0C8F 

0C90 

0C91 

OC92 

OC93 

OC94 

OC95 

0C96 

OC97 

OC98 

0C99 

OC9A 

0C9B 

0C9C 

OC9D 

0C9E 

0C9F 

OCAO 

OCA1 

0CA2 

OCA3 

0CA4 

OCA5 

0CA6 

OCA7 

OCA8 

OCA9 

OCAA 

OCAB 

OCAC 

OCAD 

OCAE 

OCAF 

OCBO 

OCB1 

OCB2 

OCB3 

0CB4 

OCB5 

OCB6 

OCB7 

OCB8 

0CB9 

OCBA 

OCBB 

OCBC 

OCBD 

OCBE 

OCBF 

OCCO 

OCC1 

OCC2 



1 2 


OOOO- 03FF-*- Q []Q 




0400 - 07FF -♦ C Zl C D 




0800 - OBFF -•• [ Z) [ 




OCOO - OFFF -► C Zl (Z ID 




1000 - I3FF -♦ [Z Z) 




1400 - I7FF -•• [^ 




1800 - IBFF -► (Z Zl (Z Zl 




ICOO - IFFF -» [ 


/ ... 



Fig. 1. 



Code (hex) 
21 

11 



OE 

80 

3E 

01 

B7 

77 

BE 

C2 

9E 

OC 

17 

D2 

8B 

OC 

7D 

BB 

C2 

A2 

OC 

7C 

BA 
C2 
A2 
OC 

76 
C3 
9E 

OC 

22 

CI 

OC 

79 

BE 

C2 

9E 

OC 

7D 

FE 

00 

C2 

BD 

OC 

7C 

FE 

C2 

BD 

OC 

2A 

CI 

OC 

23 

C3 

88 

OC 

2B 

C3 

A5 

OC 



3 4 5 6 7 8 
1 II II II II II 1 

1 II II II II II 1 

1 II II II II II 1 

1 II II II II II 1 

1 II II II II II 1 

( II 1 II 1 

1 II II II II II 1 

1 II II M II M 1 


_] 



BIT 

NUMBER 



Mnemonic 
LXI H 

LXI D 

MVIC 

MVI A 

ORA A 
MOV M,A 
CMP M 
JNZ 



RAL 
JNC 



MOV A,L 
CMP E 
JNZ 



MOV A,H 

CMP D 
JNZ 



HLT 
J MP 



SHLD 



MOV A,C 
CMP M 
JNZ 



MOV A,L 
CPI 

JNZ 



MOV A,H 
CPI 


JNZ 


LHLD 


INX H 
JMP 


DCX H 

JMP 



other possible memory prob- 
lems. One of the more diffi- 
cult is cross feed between 
memory locations. In this 
situation, data loaded at one 
location will alter the con- 
tents of another location. The 
program below will determine 
if all locations will hold data 
and if there is any cross feed 
to other locations. 

Program Operation 

The program works as 
follows: 00000001 is sent to 
the first memory location and 



Comment 

Load lowest address 
to be checked. 

Load highest address 
to be checked. 

Highest number to 
be stored. 
Lowest number to 
be stored. 
Reset carry. 
Store number. 
See if accepted. 
Halt if not accepted. 



Move bit left. 



See if we have 
reached last 
location specified. 



Check high address 
to see if done. 



Halt. 



Temporarily store 
present location. 

See if 80 is 
still in memory. 
Halt if it isn't. 



See if we are at the 
beginning of the RAM 
Low byte of 
lowest address 



High byte of lowest 
address. 



Get back location 
for acceptance part. 



Temporary storage 
for memory location. 



Program listing. 



then recalled to be sure that 
it was accepted by the RAM. 
If it was, the accumulator is 
rotated left to give 
00000010, for which the 
storage and retrieval are re- 
peated. 

When we get to the point 
where we have rotated the 1 
out of the accumulator and 
into the carry flag, we test all 
previously loaded locations to 
be sure that the contents have 
not changed. 

If a location refuses to 
accept data, the program will 
halt. The contents of the H 
register will tell you the row 
in which the bad chip is 
located. The number in the 
memory location should tell 
you which column the chip is 
in. If it doesn't, try storing 00 
in the location given by HL. 
If it accepts 00, try FF. The 
number that appears will 
indicate which column con- 
tains the bad chip. For 
example, when attempting to 
store 00, if you find 01, then 
a 1 was stored and the bad 
chip is in the first column on 
the left. If you find 40, then 
a 1 is stuck in the second 
column from the right. 

Now, if a cross feed has 
occurred, the program will 
stop at the receiver of the 
cross feed, and its location 
will be held in HL. The loca- 
tion of the sender of the cross 
feed will be held at 0CC1. 
The bit that was cross fed 
should indicate the column in 
which the problem lies. See 
Table 1 for an explanation of 
the program. 

There is one chance in 
sixteen that the program will 
miss a cross-feed problem. 
This chance is that a 1 has 
been fed into the most signifi- 
cant bit (MSB) of a lower 
location. If you have a mem- 
ory problem that the program 
does not find, I suggest you 
modify the steps in Example 
1 and run it again. ■ 



0C87 
0C89 
0C90 



01 
80 
IF 



RAR 



Example 1. 



65 



Joseph Roehrig 

Box 74 

Middle Village NY 1 1379 



3-D Tic-Tac-Toe 

a winner with the whole family! 




ow that you have your 
computer running, it is 
time to entertain your family 
and friends. At the same 
time, you should impress 
them with your computer's 
brilliance. A game is the 
natural medium to introduce 
others to your new sophisti- 
cated toy and a familiar game 
is a wise choice. Tic-tac-toe is 
very well-known and a logical 
choice for your demonstra- 
tion. 

IBM had a tic-tac-toe game 
in its pavilion at the 1964 
New York World's Fair. 
IBM's game could never lose, 
but also could never win 
against a knowledgeable 
player due to the simplicity 
of the game. A standard tic- 
tac-toe game has a two- 
dimensional 3-box by 3-box 
game board. There are only 
nine possible moves, making 
the game rather easy to play 
for both man and machine. 

YOUR MOVES ARE UU AND I'M CC 



To improve our display 
game, the board has been 
expanded from the standard 
3 by 3 to a 4 by 4. This adds 
to the complexity of the 
game, but a skilled player can 
still stand off a computer. 
Here we add a third dimen- 
sion and increase the size of 
the board. Now the game 
becomes a real challenge with 
its 4 by 4 by 4 cubic look. 

Three Versions 

This article describes and 
provides programming details 
for three versions of tic-tac- 
toe. All three versions will be 
derived from one relatively 
short sixty line BASIC lan- 
guage source listing. The pro- 
gram is written in Altair 3.2 
BASIC and is geared for a 
video terminal with 80 char- 
acters and 24 lines. (An 
option to the coding is 
described to reduce the 
printed output if desired.) 



^> 1 I 1UN * ARE 




1 5 


9 


1 3 






2 6 


10 


14 






3 7 


1 1 


15 






4 8 


12 


16 


BOARD 1 


BOARD 2 


BOARD 3 




BOARD 4 


UU/ / / 
/////////// 

/ / / 
//////////' 

/ / / 
/////////// 

/ / / 


/ / / 
/////////// 
CC/ / / 
/////////// 

/ / / 
/////////// 

/ / / 


/ / / 
/////////// 

/ / / 
/////////// 

/ / / 
/////////// 

/ / / 




/ / / 
/////////// 

/ / / 
/////////// 

/ / / 
/////////// 

/ / / 



YOUR BOARD, POSITION? 1,4 
I WANT BOARD 1 POSITION 2 

(EVERYTHING EXCEPT LINE 1 IS REPRINTED UP TO 
' ' YOUR BOARD ...'') 

Fig. 1. Display of game being run. 



The versions are: 

Version 1 — a simple 4 by 4 
with quick response time. 

Version 2 — a 4 by 4 by 4 
which can be beaten and 
respond to each move in 25 
seconds or less. 

Version 3 — an almost un- 
beatable 4 by 4 by 4 game. 
I'm forced to say almost 
because the possible moves 
can go as high as 64 factorial. 
An easier way of pointing out 
the numerous possibilities is 
to say that the first two 
moves taken by each player 



can take any one of 
1 5,249,025 combinations. 

Fig. 1 shows what the 
computer prints out for all 
three verions. Boards 2, 3 and 
4 are not needed in the two- 
dimensional 4 by 4 Version 1. 
Each board has sixteen 
possible positions. To move, 
you choose the board (1 to 4) 
and the position (1 to 16). 
The sixteen position numbers 
are the same for each of the 
four boards. 

Version 3 - The Rough One! 

An easy way to proceed is 
to describe Version 3, the 
most complex, and then 
discuss the modifications 
necessary to use the other 
two. Fig. 2. is the flowchart 
of the game. First, the com- 
puter sets all of its 64 board 
squares to double blanks. 
During the game, the com- 
puter's squares will be 
marked CC and the player's 
UU. The board is different 
from Fig. 1. The computer 
really has only one board that 
contains 64 squares. Fig. 3 
shows how the computer's 64 
squares correspond to the 
player's four boards of six- 
teen squares each. Also 
detailed in Fig. 3 are the 76 





INPUT 
WINNING 
NUMBER 
COMBINATIONS 










PRINT 
BOARD 














ASK FOR 
MOVE 












PRINT 
"ILLEGAL 
MOVE" 
MESSAGE 














I 


NO 


/VALID >v 



MOVE 



rES 



CALCULATE 
VALUE OF 

WINNING 
COMBINATIONS 




YES 



CALCULATE 
VALUES OF 
COMPUTER'S 
MOVES 







YES 



PRINT 
" I WON" 
MESSAGE 



PRINT 
"YOU WON' 
MESSAGE 



SELECT BEST 
MOVE FOR 
COMPUTER 8 
PRINT IT 



Fig. 2. Tic-tac-toe flowchart. 



66 



possible winning combina- 
tions that must be stored in 
the computer's memory. 
Only winning moves 1 to 10 
are needed for the two- 
dimensional game. Wins 1 to 
40 have moves that are all on 
one board. The winning 
moves described as 41 to 76 
have one move on each of the 
four boards. Some of these 
are tricky and a study of Fig. 
3 will familiarize you with all 
of the possible ways of win- 
ning. 

The computer then asks 
for your move (Fig. 1). Your 
move is a board number, a 
comma, and a position num- 
ber. These two figures are 
converted into a computer 
position which is described in 
(Fig. 3). If you move to an 
occupied space or type in an 
invalid move (not a number 
from 1 to 4 followed by a 
comma and a number from 1 
to 16), the computer will 
again ask for your move. 
Note: in the two-dimensional 
game, a move to any board 
other than board 1 will result 
in a lost move. 

The computer now calcu- 
lates the value of each of the 
76 possible winning combina- 
tions. The value is equal to 
the sum of the va\ues assigned 
to each of the four squares or 
board positions contained in 
the winning combination. 
The values of the board posi- 
tions are: 

for an unoccupied box — 
prints 2 blanks on game 
board. 

1 for your boxes — prints UU 
on appropriate game board 
position. 

5 for computer occupied 
boxes — prints CC on game 
board. 

These values are important 
and are used in all move 
decisions. 

The computer now sees if 
the value 4 exists in any of 
the 76 win possibilities. If 4 
exists, you have beaten the 
computer and the game is 
over. A four designates a 
player's win, since the only 
way four can exist is to have 
a 1, a player's box, in each of 



10 DIM S(64), W(3,76), S$(64), V(76) 

20 FOR A = 1 TO 10 : FOR Al = TO 3 : READ W(A1,A) : NEXT A1,A 

30 FOR A = 1 TO 3 : Al*10 : FOR A2= 1 TO 10 : FOR A3 = TO 3 

40 W(A3,A1 + A2)=W(A3,A2)+(16*A) : NEXT A3,A2,A 

50 FOR A = 41 TO 56: FOR Al = TO 3 

60W(A1,A)= (Al*16)+A-40 : NEXT A1,A 

70 FOR A = 57 TO 76 : FOR Al = TO 3 : READ W(A1,A) : NEXT A1,A 

72 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,5,9,13,2,6,10,14 

74 DATA 3,7,11,15,4,8,12,16,1,6,11,16,4,7,10,13,1,22,43,64 

76 DATA 5,22,39,56,9,26,43,60,13,26,39,52,2,22,42,62,14,26,38,50 

78 DATA 3,23,43,63,15,27,39,51,4,23,42,61,8,23,38,53,12,27,42,57,16,27,38,49 

80 FOR A = 1 TO 64: S$(A)=" " : S(A)=0 : NEXT A 

83 DATA 1,21,41,61,1,18,35,52,4,19,34,49,4,24,44,64 

84 DATA 13,25,37,49,13,30,47,64,16,31,46,61.16,28,40,52 

85 PRlNT"YOUR MOVES ARE UU AND I'M CC" 

90 GOSUB 1000 : "INPUT "YOUR BOARD, POSTION";Al,A2 

100 A=((A1-1)*16)+A2 

105 IF A >64 OR >1 A THEN PRINT"ILLEGAL MOVE" : GOTO 90 

110 IF S(A) <>0 THEN PRINT'YOU CAN'T MOVE THERE" : GOTO 90 

120 S(A)=1 : S$(A)="UU" 

190 M5=0 : FOR A = 1 TO 76 

192 A2= W(0,A) : A3=W(1,A) : A4= W(2,A) : A5=W(3,A) 

194 V(A)=S(A2)+S(A3)+S(A4)+S(A5) 

196 IF V(A)=4 THEN 410 

198 IF V(A) = 15 THEN M5=A 

199 NEXT A : IF M5 <>0 THEN 365 

200 M3=9 

204 Y1=0 

205 FOR A = 1 TO 64 : M2=0 
210 IF S(A) <>0THEN 350 
215 Yl = Yl+1 

220 FOR Al = 1 TO 76 

225 FOR A2 = TO 3 : IF A=W(A2,A1) THEN 230 

228 NEXT A2: GOTO 300 

230 A6= V(A1) 

260 IF A6=3 THEN M4=A : GOTO 390 

270 IF A6 = THEN 300 

280 IF 5 > A6 THEN M2 = M2 + A6 A6 : GOTO 300 

290 A7= INT(A6/5) : IF A7 = A6/5 THE M2=M2+A7 

300 NEXT Al 

320 IF M2 >M3 THEN M3=Mt : M4=A 

350 NEXT A : GOTO 390 

365 FOR Al = TO 3 : A6 = W(A1,M5) : IF S(A6) = THEN M5=A6 : GOTO 368 

367 NEXT Al 

368 PRINT "THE OLD"; M5 

370 S$(M5)="CC" : Al= INT(M5-1/16)+1 : A2= M5-((A1-1)* 16) 

380 PRINT"I WON WITH BOARD";Al;"POSITION";A2 : GOSUB 1000 

382 INPUT"READY";A1 : GOTO 80 

390 S$(M4)="CC" : S(M4)=5 

392 A1=INT((M4-1)/16) : A2=M4-<(A1-1)*16) 

400 PRINT"I WANT BOARD" ;A1 ;"POSITION";A2 : GOTO 90 

410 PRINT : PRINT"YOU WON" : GOSUB 1000 : GOTO 80 

1000 PRINT"POSITIONS ARE"; : FOR A + TO 3 : FOR Al = l TO 13 STEP 4 : A2=20 + (Al*4) 

1100 PRINT TAB(A2); A+Al ; : NEXT Al : PRINT : NEXT A :PRINT:PRINT 

1105 FOR A=0TO 3 : PRINT TAB(A*15);"BOARD";A+l ; : NEXT : PRINT 

1107 PRINT : PRINT 

1110 FOR A = 1 TO 4 : Al = TO 48 STEP 16 : A2 = A +A1 

1120 PRINT S$(A2);"/";S$(A2+4);"/";S(A2+8);"/";S(A2+12);" ";: NEXT Al 

1125 IF A=4 THEN 1130 

1127 PRINT : FOR A2 = 1 TO 4 : PRINT'////////// "; : NEXT A2 

1130 PRINT : NEXT A : PRINT : PRINT : RETURN 

Program A. BASIC program for Verson 3 of three-dimensional tic-tac-toe. 



190 M5=0 : Q=0 : FOR A = 1 TO 76 
197 IF V(A)=3 THEN Q=A 

201 IF Q=0 THEN 205 

202 FOR A9= TO 3 : A6 =W(A9,Q) : IF S(A6)=0 THEN M4=A6 : GOTO 390 

203 NEXT A9 

220 FOR Al= 60 TO 76 STEP 2 

280 IF 5 > A6 THEN M2=M2+A6 : GOTO 300 

350 NEXT A : IF M3 <>0 THEN 390 

352 FOR A =1 TO 64 : IF S(A)=0 THEN M4=A : GOTO 390 

354 NEXT A 

Note: In line 280, change M2=M2+A6 to M2=M2+A6tA6 to make this version harder to beat. 



Program B. Modifications necessary to obtain Version 2 of the game. 



67 



Computer Boards: 






Board #1 


Board #2 


Board #3 Board #4 


15 9 13 


17 21 25 29 


33 37 41 45 49 53 57 61 


2 6 10 14 


18 22 26 30 


34 38 42 46 50 54 58 62 


3 7 11 15 


19 23 27 31 


35 39 43 47 51 55 59 63 


4 8 12 16 


20 24 28 32 


36 40 44 48 52 56 60 64 


Winn 


ing moves per computer boards: 


1) 


12 3 4 


39) 


49 54 59 64 


2) 


5 6 7 8 


40) 


52 55 58 61 


3) 


9 10 11 12 


41) 


1 1 7 33 49 


4) 


13 14 15 16 


42) 


2 18 34 50 


5) 


15 9 13 


43) 


3 19 35 51 


6) 


2 6 10 14 


44) 


4 20 36 52 


7) 


3 7 1115 


45) 


5 21 37 53 


8) 


4 8 12 16 


46) 


6 22 38 54 


9) 


1 6 11 16 


47) 


7 23 39 55 


10) 


4 7 10 13 


48) 


8 24 40 56 


11) 


17 18 19 20 


49) 


9 25 41 57 


12) 


21 22 23 24 


50) 


10 26 42 58 


13) 


25 26 27 28 


51) 


11 27 43 59 


14) 


29 30 31 32 


52) 


1 2 28 44 60 


15) 


17 21 25 29 


53) 


1 4 30 46 62 


16) 


18 22 26 30 


54) 


13 29 45 61 


17) 


19 23 27 31 


55) 


15 31 47 63 


18) 


20 24 28 32 


56) 


1 6 32 48 64 


19) 


17 22 27 32 


57) 


1 22 43 64 


20) 


20 23 26 29 


58) 


5 22 39 56 


21) 


33 34 35 36 


59) 


9 26 43 60 


22) 


37 38 39 40 


60) 


1 3 26 39 52 


23) 


41 42 43 44 


61) 


2 22 42 62 


24) 


45 46 47 48 


62) 


14 26 38 50 


25) 


33 37 41 45 


63) 


3 23 43 63 


26) 


34 38 42 46 


64) 


15 27 39 51 


27) 


35 39 43 47 


65) 


4 23 42 61 


28) 


36 40 44 48 


66) 


8 23 38 53 


29) 


33 38 43 48 


67) 


12 27 42 57 


30) 


36 39 42 45 


68) 


16 27 38 49 


31) 


49 50 51 52 


69) 


1 21 41 61 


32) 


53 54 55 56 


70) 


1 18 35 52 


33) 


57 58 59 60 


71) 


4 19 34 49 


34) 


61 62 63 64 


72) 


4 24 44 64 


35) 


49 53 57 61 


73) 


13 25 37 49 


36) 


50 54 58 62 


74) 


1 3 30 47 64 


37) 


51 55 59 63 


75) 


16 31 46 61 


38) 


52 56 60 64 


76) 


16 28 40 52 



Fig. 3. Computer's board and winning moves. 



the boxes making up a win- 
ning combination. 

If this condition does not 
exist, the program continues. 
The computer now checks to 
see if a 15 occurred during 
the previous evaluation. If it 
exists, the computer wins on 



Version 2 Game 


Player's 


Computer's 


Move 


Move 


1,4 


2,8 


1,13 


2,10 


1,11 


1,14 


1,3 


3,6 


1,7 


4,2 


Computer Wi 


ns 



this move. Fifteen — not 
twenty — is a winner, since 
unlike the player, the com- 
puter has not selected its 
move. Thus 1 5 means the 
computer has three boxes in a 
winning combination that has 
one unoccupied square. All 



Version 2 Game 
Player's Computer's 

Move Move 



1,4 


2,8 


1,13 


2,10 


1,11 


1,14 


1,3 


3,6 


4,2 


1,8 


1,7 


1,10 


1,15 




Player Wins 





To beat the computer, the player 
should establish a situation where 
three of his boxes are not strung 
together until there are at least 
two opportunities established by 
the string of three. The player 
establishes the UUs and then the 
XX making it impossible for the 
computer to block both winning 
combinations. 



/ / /UU 
/////////// 

/ / / 
/////////// 
UU/XX/UU/ 
/////////// 
UU/ / / 



Fig. 4. Winning strategy. 



Value of Winning Combination 

1 
2 
3 

5 
10 
all others 



Points Awarded to Box 

1 
4 
no points, moves to block 
1 
2 




Table 1. 



the computer must do to win 
is find the box in the com- 
bination that equals zero and 
then designate that box as its 
move. Naturally, sixteen 
represents a block by the 
player. If the computer does 
not win, we continue and the 
computer selects its move. - 

The evaluation of the com- 
puter's move considers each 
of the sixty-four possible 
boxes that are unoccupied. 
The computer checks every 
unoccupied box to see 
which of the 76 winning 
moves contains that box. For 
each winning move con- 
taining the box or square 
under consideration, points 
are given to the box's evalu- 
ation (see Table 1). 

Only five values of the 
winning combinations are of 
any importance in the evalu- 
ation process and a 3 causes 
an automatic move to block. 
The block is always taken, 
since it has already been 
established that the computer 



Version 


3 Game 


i 


Player's 


Computer's 


Move 


Move 


1,4 




1,1 


1,13 




1,7 


2,4 




4,4 


2,13 




4,13 


2,11 




1,16 


2,3 




2,7 


3,4 




4,1 


3,13 




2,1 


3,1 




3,3 


3,14 




2,2 


Computer Wins 





Fig. 5. Sample games. 



cannot win on this particular 
move and an unblocked 3 
gives the player the oppor- 
tunity of winning on the next 
move. Therefore, the 3 must 
be blocked. The values 
labeled "all others" are 6, 7, 
11, etc. They have no value, 
since both a UU and a CC are 
already found in the particu- 
lar winning combination. 
Thus, neither the player nor 
the computer can win with 
the combination in question. 
A winning combination 
having two of the player's 
moves in it and two un- 
occupied squares is awarded 
four points. This is more than 
a combination having two of 
the computer's moves in it 
and two unoccupied boxes, 
which is awarded only two 
points. This is done because 
the player always moves 
ahead of the computer, 
forcing the computer to play 
defense more than offense. 
This priority also avoids the 
situation shown in Fig. 4 — 
the strategy that can beat the 
computer if this priority is 
not employed. 

All of the possible points 
are totaled for every winning 
combination involving the 
box under evaluation. The 
box receiving the highest 
point score becomes the com- 
puter's move. 

That completes a descrip- 
tion of Version 3 of the 
tic-tac-toe game which I feel 
cannot be beaten by a human 
opponent. 

Now for the bad news; it 



68 



takes about three minutes for 
the computer to calculate its 
first move. The time required 
to select the computer's move 
gradually goes down as the 
game progresses. 

Version 2 — Can Be Beaten 

Version 2 is also three- 
dimensional, however, it 
moves in 25 seconds or less 
and you can beat it. The 
game is played exactly like 
Version 3, except: a) All of 
the combinations are not 
evaluated. Therefore, the 
computer does not always 
pick its best move and it is 
much faster, b) The computer 
plays offense equal to defense 
and does not always prevent 
the player's winning strategy 
(Fig. 4). 

This version is the one I 
recommend that you use. Fig. 
5 shows the moves from a 
few sample games. In the first 
example the player loses to 
Version 2; next the player 
beats Version 2; and last the 
winning moves are pitted 
against Version 3 without any 
success for the player. 
Depending on the skill of the 
player, Version 2 can be diffi- 
cult to beat. In fact, it can 
only be beaten by the 
strategy described in Fig. 4. 
After a friend has lost a game 
or two to Version 2, you can 
then take over and easily con- 
quer the computer much to 
your friend's surprise. 

On all computer wins, the 

computer prints the old XX. 

XX represents the winning 

combination as detailed in 

Fig. 3. 

The first version of the 
game is two-dimensional and 
needs no explanation; it is 
played like the other two. 
However, as mentioned 
earlier, do not move to 
boards 2, 3, or 4, or your 
turn will be lost. 

The Program Listings — And 
Modifications 

Program A is the source 
listing for Version 3. Program 
B lists the additions, deletions 
and changes necessary for 
Version 2. Only winning com- 
binations 60, 62, 64, 66, 68, 



70, 72 are checked in Version 
2. By changing line number 
220 you can change the com- 
binations (and the number of 
combinations) used during 
the execution of the program. 
I suggest always using com- 
binations above 40 in order 
to give the computer a better 
chance of winning. These 
combinations all use the third 
dimension, therefore making 
the human player's defense 
more difficult. 

To play the two-dimen- 
sional game, Version 1, 
changes shown in Program C 
must be incorporated into 
Program A. 

As mentioned earlier, all 
versions of the game are 
designed for use on a video 
terminal and the games 
display the boards after every 
two moves (one by the player 
and one by the computer). 
They also print the com- 
puter's moves. Therefore, to 
avoid the board printings 
only, make the following 
change: 1000 RETURN. 

You will now have to keep 
track of the boards on your 
own, unless you have a mem- 
ory equal to that of the com- 
puter. 

If you enter the program 
into your computer, you will 
probably make typographical 
errors. The two lines in 
Program D will help you 
determine whether the proper 
winning combinations are 



entered. These lines will be 
the first inputs you en- 
counter. 

In order to rejoin a game 
at any given point during 
debugging or for other 
reasons, use the lines in 
Program E. 

These lines allow you to 
enter all player and computer 
positions. First, enter all 
player positions into the com- 
puter using the computer's 
format (numbers 1 to 64) and 
a to stop. The same pro- 
cedure is then repeated for 
the computer. 

The program was run with 



12192 words of memory. 
Including the BASIC, about 
2500 words are left for your 
enhancements. 

Good luck, and if you beat 
my almost unbeatable game, 
change line 290 as shown in 
Example 4. This will make 
the computer play even more 
defensively. I have not yet 
beaten Version 3, so I have 
not tried this modification. 
Figs. 6 and 7 will be an aid in 
debugging and enhancing the 
program, since they describe 
the major variables and com- 
puter functions by line num- 
ber. ■ 



S(64) — value of all boxes. 

S$(64) — board character for each box. 

W(3,76) - 76 winning combinations. 

V(76) — value of winning combinations. 

M5 — if positive, possible computer win if loss has not occurred. 

M2 — accumulates value of all combinations that involve the box being 

evaluated. 

M3 — highest value for a box thus far. 

M4 — number of the box having the above highest value. 

A6 — value of combination being examined. 

Fig. 6. Major variables. 



10 — dimension variables. 

20 to 84 — read winning combinations as data or calculate them from 
existing winning combinations. 

80 to 120 — player's move. 

190 to 199 — evaluate winning combinations and check for computer 
loss or possible win. 

200 to 350 — select computer's move. 

365 to 410 — print move information. 

1 000 to 1 1 30 — subroutine to print board. 

Fig. 7. Functions by line number. 



190 M5=0 : FOR A = 1 TO 10 
205 FOR A = 1 TO 16 : M2=0 
220 FOR Al = 1 TO 10 



Program C. Changes to obtain Version 1. 



81 INPUT A,B : FOR C= A TO B : FOR D = TO 3 : PRINT W(D,C);: NEXT : PRINT: NEXT C 

82 INPUT Q : IF Q > 1 THEN 81 

Program D. Entry program for Winning Combinations data. 



81 INPUT Q : IF Q <>0 THEN S(Q)=1 : S$(Q)="UU" : GOTO 81 

82 INPUT Q : IF Q = THEN S(Q)=5 : S$(Q)= U CC" : GOTO 82 

Program E. Modifications necessary to have "interrupted" game. 



290 A7=INT(A6/5) : IF A7+ A6/5 THEN M2=M2+A7-1 



Program F. Statement to obtain the ultimate unbeatable game. 



69 



Allen S. Krieger 
44 Webster Rd. 
Lexington MA 02173 



Programmed Instruction 
Made Easy: Tiny PILOT 



Part 2: developing your own version 



In the first part of this series, I 
described a home computer 
version of PILOT, a dialogue- 
oriented programmed instruc- 
tion language, specifically de- 
signed for nonmathematical 
programming. It is, possibly, 
the easiest computer language 
to learn and use today. In this 
article, by describing the inter- 
preter that I wrote, called KTP, I 
will show you how to write a 
PILOT interpreter for your own 
computer. The routines in the 
KTP interpreter are illustrated 
through flowcharts. After all, a 
Z-80 assembly-language listing 
wouldn't be very useful for 
someone with a 6800 or 6502 
CPU chip, and flowcharts are 
the universal language of com- 
puting. 



Review 

For reference purposes, 
Table I (reproduced from the 
first article) shows the 14 Tiny 
PILOT instructions in the KTP 
interpreter. They are slightly 
different from the instructions 
of the parent language. In part, 
these differences make pro- 
gramming in Tiny PILOT easier 
for novice programmers and 



also make it easier to write the 
interpreter. 

A Tiny PILOT program con- 
sists of statements, each hav- 
ing a label (optional), a one- or 
two-letter instruction (man- 
datory), a colon (mandatory), an 
operand field (mandatory for 
some instructions, optional for 



others) and a carriage return 
(mandatory). The operand field 
is the text between the colon 
and the carriage return. It may 
contain text to be displayed, a 
variable name, a statement la- 
bel name, one or more match- 
strings, a counter name or the 
test of a mathematical relation- 



NAME 

type 

ask 

match 

yes 

no 

jump 

use 

return 

end 

zero 

bump 

examine 

clear 

ignore 



SYMBOL FORMAT 



T 
A 
M 
Y 
N 
J 
U 
R 
E 
Z 
B 
X 
C 
I 



(...) 

% LABEL/ 

/VRBLE7 

text 

/MATCHSTRING/ 

-:x . . . x*CR* 

n 

ccc 



(% LABEL/) T:text (/VRBLE/) (text)*CR* 
A:(/VRBLE7) *CR* 

M:/MATCHSTRING/(,/MATCHSTRING/) # CR* 
-Y:x...x*CR* 
-N:x...x # CR* 
J:/LABELTCR* 
U:/LABELTCR* 
R:*CR # 
E: # CR* 
Z:n*CR # 
B:n*CR* 

X:n = or< or > ccc'CR* 
C:*CR* 
l:text*CR* 

DEFINITIONS 

Anything within parentheses is optional. 
A statement label name of 1 to 5 characters 
preceded by %, and followed by /. 
A variable name of 1 to 5 characters preceded 
and followed by slashes. 
Any ASCII character string that does not 
include a colon or a slash. 
An ASCII character string of one to 15 char- 
acters preceded and followed by slashes. 
Any Tiny PILOT statement (for use with Y or N). 
I, J, K or L (in Counting Instruction statements). 
Any positive, decimal integer constant 
between 1 and 255 (in the X statement). 



Table 1. Tiny PILOT Instructions. 



ship. The KTP interpreter acts 
on the operand field according 
to the particular instruction. 

The Structure of the Interpreter 

To the novice programmer, 
an interpreter is a little gremlin 
that sits inside the box with the 
blinking lights attached to the 
input/output terminal. The 
gremlin reads the program line 
by line and types, asks for in- 
put, matches answers, etc., as 
required. The gremlin must be 
able to distinguish the instruc- 
tions from the text in the 
operand field and must know 
what to do in response to the 
particular instruction it finds. 
Often the gremlin will have to 
perform similar tasks in 
response to several different in- 
structions. In order to perform 
some tasks, such as typing a 
character on the output device, 
the interpreter should be able 
to call on utility routines provid- 
ed as part of the operating 
system with your computer. 

The interpreter, therefore, 
consists of a command pro- 
cessor, instruction-processing 
routines, interpreter utility 
routines and calls to system 
utility routines. The command 
processor finds the instruc- 
tions, decodes them and 
transfers control to the ap- 
propriate instruction processor 
routine, which performs 
specific tasks and then returns 
control to the command pro- 
cessor. Both the command pro- 
cessor and the instruction pro- 
cessor can call interpreter utili- 
ty routines that find the next 
occurrence of a specific 
character, load a buffer storage 
area or compare two character 
strings. Some of the instruction 
processors call system utility 
routines to carry out the de- 
tailed tasks of input and out- 
put. Fig. 1 shows the organiza- 
tion of the KTP interpreter. 

You will be able to use the 
same logical flow in your com- 
mand processor and instruc- 
tion routines, regardless of the 
type of CPU. You will have to 
write your own utility routines, 
which tend to be ve\a\wely 
machine dependent. Owners of 
8080/Z-80 or 6800 CPUs will find 
good examples of most KTP 



70 



utility routines in the Scelbi 
Software Gourmet Guide & 
Cookbook series (reference 3). 

The Command Processor 

In the KTP interpreter the 
command processor is part of 
the main program. Fig. 2 is a 
flowchart of the main program. 
First, the main program calls 
the initialization routine. This 
subroutine, named CLRVAR, 
clears the variable storage area 
and the variable name table. It 
initializes the number of active 
variables to zero and resets the 
matchflag and the active 
subroutine flag to "no." Finally, 
it initializes the primary text- 
pointer storage word, named 
MARKER, to the address of the 
first character of the text. The 
initialization routine then 
returns. 

The actual command pro- 
cessor begins by finding the 
next (or the first) instruction. 
Actually, it doesn't find the in- 
struction itself but finds the 
colon that follows the instruc- 
tion. This is the only way that 
the command processor can 
distinguish an instruction from 
an identical character in the 
operand field of a statement. 

The colon is found by a utility 
routine named SCANNR, the 
most widely used subroutine in 
the KTP interpreter. SCANNR 
requires the specification of a 
text pointer and two characters, 
a target and a terminator. The 
pointer is a register or two-byte 
memory word that holds the ad- 
dress of a character in the text. 
A flowchart of SCANNR is 
shown in Fig. 2b. It returns the 
address of the next occurrence 
of the target as the value of the 
text pointer. If SCANNR en- 
counters the terminator before 
finding the target, it raises an 
error condition flag (e.g., the 
carry flag) and returns. The 
pointer value is incremented at 
the start of the routine because 
when the command processor 
calls SCANNR, the text pointer 
usually contains the address of 
the previous colon. 

The command processor 
sets the colon as the target for 
SCANNR and the # as the ter- 
minator. Both KTP and my tiny 
text editor use # as the end-of- 



MAIN PROGRAM 
(COMMAND PROCESSOR) 



INSTRUCTION 

PROCESSOR 

ROUTINES 



M 



* — » 



KTP 

UTILITY 

ROUTINES 



CLRVAR 



OPERATING SYSTEM 
UTILITY ROUTINES 



1 



I 



N 



Lllllli 



u 



B 



SCANNR 



CHARACTER 
OUTPUT 



BACKUP 



LODBUF 



COM PAR 



FORWRD 



CHARACTER 
INPUT 



text indicator. If SCANNR 
returns with the terminator flag 
set, then there is no more Tiny 
PILOT text. The command pro- 
cessor acts according to an E 
instruction. If SCANNR has 
found a colon, its address is 
saved in MARKER. 

The first non-blank character 
preceding the colon is the in- 
struction. The command pro- 
cessor therefore calls a routine 
named BACKUP, which finds 
that character by decrementing 
the pointer until it finds any 
non-blank character. (I first saw 
this rather elegant method of 
finding PILOT commands in an 
experimental PILOT interpreter 
by Dean Brown of Zilog, Inc. 
See reference 2.) 

The command processor 
must now decode the com- 
mand and jump to the ap- 
propriate instruction processor 
routine. I implemented this 
function by setting up a jump 
table. I stored the 14 Tiny PILOT 
instructions in a table with 
memory running from location 
0DD0-I6 to location ODDDig. 
The low bytes of the address of 
each instruction processor 
routine were listed in the same 
order from 0DE0-|6 to 0DED-J6- 
The high bytes were listed from 
ODFO16 to 0DFD-I6- When the 
command processor finds a 
match between the candidate 
instruction and a member of 
the instruction set, it adds 1 OH 
twice to fetch the address of 
the instruction processor. 

Two steps are included in the 
command processor to make 



FNDCTR 



CLEAR 

TV 
SCREEN 



Fig. 1. Overall flowchart. 



f START J 



RETURN FROM A ^ 

SUCCESSFUL Y OR N\ 

INSTRUCTION J 







CALL 
CLRVAR 

initializes! 
variables 



/re 1 

4 INS 



LOAD 

CANDIDATE 
INSTRUCTION IN A 
REGISTER 



:turn FROM 

(STRUCTION 

V PROCESSORS 



TARGET « 

TERMINATOR* " ** " 
POINTER* (MARKER) 
(FOR SCANNR ) 



POINT AT 

INSTRUCTION 

TABLE 




FETCH NEXT 
INSTRUCTION 
AND COMPARE 
TO CANDIDATE 



JUMP TO 

£ INSTRUCTION 

PROCESSOR 

ROUTINE 



YES 



SAVE LOCATION 
OF " " IN 
MARKER 



FETCH 

INSTRUCTION 

PROCESSOR 

ROUTINE 

ADDRESS 




INCREMENT 
POINTER 



CALL 

BACKUP 

fFINDS LAST NON- 
BLANK CHARACT 
BEFORE " 



«] 



I 



JUMP TO 
INSTRUCTION 
PROCESSOR 
ROUTINE 




NO 



JUMP TO 

T INSTRUCTION 

PROCESSOR 

ROUTINE 



Fig. 2. KTP main program. 



KTP easier to use. First, KTP 
assumes that the instruction is 
a T if the search of the instruc- 
tion list is unsuccessful. Sec- 
ond, the option of typing in- 
structions in lowercase can be 
implemented by adding a two- 
byte instruction step im- 
mediately preceding the search 
of the command table that 
logically ANDs the candidate 
instruction with DF-ig. This 
turns lowercase ASCII into up- 
percase. 
The T Instruction Processor 

Fig. 3a is a flowchart of the 
procedure for executing the T 





C SCANNR J 


J 


1 










INCREMENT 
POINTER 




I 




FETCH THE 
CHARACTER 
INDICATED BY 
THE POINTER 




SET THE FLAG 



( RETURN J 



RETURN 



Fig. 2b. SCANNR. 



71 



instruction. A temporary text- 
pointer register is initially set to 
the address of the colon (held 
in MARKER). A character 
counter is then set to the length 
of the line of my display ter- 
minal. The T instruction pro- 
cedure then calls a subroutine 
named TYPOUT, which actually 
does the printing on the ter- 
minal device. Fig. 3b is a 
flowchart of TYPOUT. Notice 
that TYPOUT can only return by 



finding either a slash indicating 
the start of a variable name or a 
carriage return. If you forget to 
include a carriage return in your 
Tiny PILOT text at the end ofaT 
statement, KTP will show you 
exactly where you goofed the 
first time you run your program. 
When TYPOUT returns, the T 
instruction processor checks a 
flag to see if the return was 
caused by the occurrence of a 
variable name. If not, the T in- 



CZD 



POINT AT (MARKER) 
LOAD CHARACTER 
COUNTER WITH 
LINE LENGTH 



1 





SET UP AND CALL 
LODBUF 

r LQADS VARIABLE' 
NAME IN TEXT 
.INTO A BUFFER . 



INCREMENT 
POINTER 



CALL 
TYPOUT 




YES 



<D 




TYPE A NUMBER 
OF BLANKS 
EQUAL TO THE 
CURRENT VALUE OF 
CHARACTER COUNTER 



'JUMP BACK> 
TO COMMAND 
.PROCESSOR; 



CALL CMPVAR 
RETURNS A NUMBER 
FROM TO 7 WHICH 
IDENTIFIES VARIABLE 



MULTIPLY NUMBER 
RETURNED BY 
CMPVAR BY 64 
ADD TO START OF VARI- 
ABLE STORAGE AREA 



SAVE TEXT POINTER 
POINT AT VARIABLE 
STORAGE ADDRESS 
COMPUTED ABOVE 



CALL 

TYPOUT 

(TYPE THE VARIABLE) 



RESTORE THE 
TEXT POINTER 



Fig. 3a. The T instruction processor. 



f TYPOUT J 



FETCH THE 

CHARACTER 

INDICATED 

BY THE POINTER 




YES 



•{ RETURN J 



YES 



SET 

VARIABLE 

FLAG 



PRINT THE 
CHARACTER. 
INCREMENT THE 
POINTER 



f RETURN J 



DECREMENT THE 

CHARACTER 

COUNTER 




NO 



SEND CARRIAGE 
RETURN AND LINEFEED 
(IF NECESSARY). RELOAD 
CHARACTER COUNTER 
WITH LINE LENGTH 



Fig. 3b. TYPOUT. 



struction procedure pads the 
line either by transmitting a 
number of blanks equal to the 
remaining contents of the 
character counter or by send- 
ing a carriage return/line feed 
(depending on the nature of 
your output terminal). It then 
jumps back to the command 
processor to find the next in- 
struction. 

If the TYPOUT subroutine 
detects a slash, which in- 
dicates the presence of a 
variable name in the T state- 
ment, it calls a routine named 
LODBUF, which requires two 
pointers and a number. In this 
case, the transmitter pointer 
contains the address of the 
first character after the slash 
starting the variable name in 
the operand field of the T state- 
ment. The receiver pointer is 
aimed at a special buffer area 
used by the comparison 
routine. The number (six, in this 
case) is the maximum length of 
the character string to be 
transferred. If LODBUF en- 
counters a second slash before 
the sixth character, it returns at 
that point. 

The next subroutine, 
CMPVAR, is actually a special 
calling sequence for a general 
string-comparison routine 
named COMPAR. CMPVAR 
compares the character string 
in the comparison buffer with 
the names of the eight (or less) 
variables defined by previous A 
statements. CMPVAR returns a 
number from to 7, which 
represents the name of the suc- 
cessfully matched variable. If 
no match is found, a failure flag 
is raised. A model of the COM- 
PAR routine can be found in 
Scelbi's "8080" Software 
Gourmet Guide & Cookbook 
(see reference 3). 

Before calling COMPAR, 
CMPVAR examines the number 
of active variables read in by A 
statements. If zero, CMPVAR 
immediately sets the failure 
flag and returns. Obviously, 
COMPAR will never find the ap- 
propriate variable name if there 
are no variable names defined. 
If there are variables to ex- 
amine, CMPVAR points at the 
first character of the first 
variable name and calls COM- 



PAR, which compares this 
character with the first char- 
acter in the buffer. 

If the two don't match, it pro- 
ceeds to the next variable 
name, identified by means of 
the terminal slash ending each 
variable name. If the first 
characters match, COMPAR 
checks the second character in 
the name against the second 
character in the buffer. COM- 
PAR continues making com- 
parisons until it either exhausts 
the list of active variables or 
succeeds in completing a 
match of an entire variable 
name (signaled by matching 
the terminal slashes). 

If CMPVAR returns with the 
failure flag set, the T instruc- 
tion processor continues to 
type with the character in the T 
statement immediately follow- 
ing the undefined variable 
name. If CMPVAR has suc- 
cessfully matched the variable 
name, the T instruction pro- 
cessor computes the address 
of the variable text storage area 
by multiplying the number of 
the variable by 64 (shift left 6 
bits) and adding the result to 
the starting address of the 
variable storage area. 

After the variable text has 
been typed, the remainder of 
the operand field of the T state- 
ment is typed. The last line is 
padded and control is returned 
to the command processor. 

The A Instruction Processor 

Fig. 4 is a flowchart of the A 
instruction processor. Concep- 
tually, the processor performs 
six tasks: (1) It clears the 64 
character input buffer. (2) It fills 
the input buffer from the 
keyboard. (3) It checks the 
operand field of the A state- 
ment to see if the contents of 
the input buffer are to be stored 
as a variable. (4) If so, it com- 
pares the variable name to 
those already in use to see if an 
old variable is being refilled. (5) 
If necessary, it stores the new 
variable name and increments 
the number of active variables. 
(6) It stores the contents of the 
input buffer in the first free 
64-byte block of the variable 
text storage area. 

After clearing the input buf- 



72 



( - ) 


1 1 


CLEAR 
INPUT 
BUFFER 



TYPE 
A "P" 



INITIALIZE A 
COUNTER 
TO 63 



INPUT A CHARACTER 
FROM THE KEYBOARD 
AND STORE IN 
INPUT BUFFER 




INCREMENT 
POINTER FOR 
INPUT BUFFER 
DECREMENT CHAR- 
ACTER COUNTER 



NO 




STORE A 

CARRIAGE RETURN 
IN INPUT BUFFER 



—© 



i 



PAD INPUT LINE 
ON TV SCREEN 
WITH BLANKS 
(IF NECESSARY) 



i 



COMPUTE ADDRESS 
OF VARIABLE TEXT 
STORAGE AREA 
f64 X VARIABLE NUMBER! 
+ ADDRESS OF START 
lOF STORAGE AREA J 



TARGET ■ ' / 
TERMINATOR • 
CARRIAGE RETURN 



CALL 

SCANNR 



STORE CONTENTS 
OF INPUT BUFFER 
IN VARIABLE TEXT 
STORAGE AREA 




JUMP BACK > 
TO COMMAND 
PROCESSOR; 



'JUMP BACK > 
TO COMMAND 
PROCESSOR; 



CALL LOOBUF 
CALL CMPVAR 




IS THE VARIABLE 
ALREADY ASSIGNED 



YES 



O 



HAVE 8 VARIABLES 
"{BEEN ASSIGNED YET \ 

YES 



JUMP BACK^ 
TO COMMAND 
PROCESSOR/ 



INCREMENT 
NUMBER OF ACTIVE 
VARIABLES AND 
STORE NEW 
VARIABLE NAME 



I 





( . ) 




1 




SET MATCH FLAG 
TO "NO" 

LOAD PNTR 

WITH ADDRESS OF 

COLON 






1 1 




1 














SET UP CALL TO SCANNR 
TEXTPOINTER » (PNTR) 
TARGET « "/" 
TERMINATOR* CARRIAGE 

RETURN 
CALL SCANNR 





SAVE ADDRESS OF 
LOCATION IN INPUT BUFFER 
HOLDING FIRST CHARACTER 
OF THE MATCHSTRING IN 
BUFPTR 




CALL 
CMPSTR 



YES 



JUMP BACK TO 

COMMAND PROCESSOR 

(NO MORE MATCHSTRINGS) 



LOAD MATCHSTRING IN 
MATCHBUFFER WITH LODBUF 

LOAD PNTR WITH ADDRESS 
OF TERMINATING SLASH 
OF MATCHSTRING 



LOAD POINTER FOR 
SCANNR FROM 
BUFPTR 



SET UP CALL TO SCANNR 
TARGET' I ST CHARACTER IN 

MATCHBUFFER 
TERMINATOR* CARRIAGE 

RETURN 
POINTER' START OF INPUT 
BUFFER 



CALL 

SCANNR 



YES 




•© 




DID CMPSTR REACH 
THE END OF THE INPUT 
BUFFER BEFORE COMPLET- ] 
ING THE MATCH 



YES 



SET MATCHFLAG 

TO 

" YES" 



'JUMP BACK TO> 

THE COMMAND 

l. PROCESSOR J 



Fig. 4. The A instruction processor. 



Fig. 5a. The M instruction processor. 



fer, the A instruction processor 
types ? as a prompt character 
on the screen. The system input 
routine is then used to read up 
to 63 characters terminated by 
a carriage return from the 
keyboard. If no carriage return 
has been typed after the sixty- 
third character, one is 
automatically entered in the 
sixty-fourth byte of the input 
buffer. 

The A instruction processor 
then uses the SCANNR routine 
to search the operand field of 
the A statement for a slash. If a 
carriage return (implying the 
end of the A statement) is 
iuuTio Vtn\, \he fc instruct ion 
processor returns control to 
the command processor. If a 
slash is found, the A statement 
processor tests for an old 
variable name in exactly the 
same way as the T instruction 
processor. If the variable has 
already been defined, the pro- 
gram skips ahead to compute 
the storage address and store 
the text. 

If the variable name is new, 
the A instruction processor 
tests the number of defined 
variables to make sure that 
there is room for another. If so, 
the number of variables is in- 
cremented and the new 



variable name is stored. If not, 
the A instruction processor ter- 
minates and control is returned 
to the command processor. 

The A instruction processor 
computes the address of the 
storage area for the variable 
text from either the number 
returned by CMPVAR or the 
new value of the number of 
defined variables. The calcula- 
tion is identical to that in the T 
processor. The text is then 
moved from the input buffer to 
the storage area with a block- 
move procedure, a single in- 
struction on a Z-80 or a short 
subroutine (from reference 3) 
on other chips. 

Processing the M statement 

The M instruction processor 
is shown in Fig. 5a. It begins by 
clearing the matchflag, then 
loads the first matchstring in 
the operand field of the state- 
ment into a buffer storage area. 
A subroutine call to COMPAR 
through CMPSTR then matches 
the contents of the matchstring 
buffer with the contents of the 
input buffer. If no match is 
found, the next matchstring is 
loaded into the buffer storage 
area and compared to the input 
buffer. The M instruction pro- 
cessor repeats this sequence 



until either a match is found or 
it runs out of strings in the 
operand field of the M state- 
ment. If a successful match is 
found, the processor routine 
raises the matchflag before 
returning to the command pro- 
cessor. 

The M instruction processor 
uses two pointers. PNTR, by 
pointing at the terminating 
slash of the string in progress, 



C CMPSTR J 



keeps track of the match- 
strings already tested. BUFPTR 
points at the last address in the 
input buffer found to hold the 
first character in the match- 
string and, thus, keeps track of 
the amount of the input buffer 
scanned for a match with the 
current string. 

CMPSTR makes a character- 
for-character comparison of 
the contents of the input buffer 



POINT AT FIRST 
CHARACTER IN 
MATCHBUFFER 
POINT AT (BUFPTR) 



FETCH CHARACTER 
FROM MATCH 
BUFFER 



SET SUCCESS FLAG 
(ALL CHARACTERS 
IN THE MATCHSTRING 
WERE MATCHED) 



'DOES IT MATCH 

1 THE NEXT CHARACTER ' 

I IN THE INPUT 

I BUFFER 

I I 




FETCH THE 




CHARACTER 


FROM 


THE 


INPUT 


BUFFER 


FOR 


TEST 





INCREMENT 
POINTERS 




SET A FLAG 

SHOWING END 

OF VNPUT BUFFER 



— ■/ RETURN ) 



MAKE SURE 
SUCCESS FLAG 
IS DOWN 



•C RETURN ) 



Fig. 5b. CMPSTR. 



73 






SET ACCUMULATOR 
TO "l" 



'JUMP BACK icy 

THE COMMAND 
. PROCESSOR j 



CZ3 




ARE ACCUMULATOR AND 
MATCH FLAG EQUAL 



CALL BACKUP 

(POINT AT THE INSTRUCTION 
IMMEDIATELY PRECEDING 
THE LETTER Y OR N ) 



JUMP TO POINT \ 
[A IN THE COMMAND] 
PROCESSOR J 



Fig. 6. The Y and N instructions. 



previous instruction. SCANNR 
then looks for the next colon, 
which will immediately follow 
the desired label. 

The subroutine that finds the 
label, JPSUB, is shown in Fig. 
7b. JPSUB stores the label 
namestring from the operand 
field of the J or U instruction in 
the variable name buffer as in a 
T or A statement. It then com- 
pares this name with every 
label, beginning with the first, 
in the Tiny PILOT text until it 



finds a match. Labels, which 
are preceded by percent signs, 
are identified by SCANNR and 
stored in the matchstring buf- 
fer. JPSUB uses a call to COM- 
PAR to match the target label 
name in the variable name buf- 
fer with the candidate label in 
the matchstring buffer. JPSUB 
uses a call to COMPAR to 
match the target label name in 
the matchstring buffer. If the 
two do not match the search is 
resumed. JPSUB returns when 



with the contents of the match- 
string buffer (shown in Fig. 5b). 
Three outcomes are possible 
from such a comparison: It 
could succeed, requiring a suc- 
cess flag; it could fail, in which 
case no flag would be set; the 
subroutine could run into the 
end of the input buffer and not 
match any characters (a flag is 
needed for this condition). The 
M statement processor will do 
something different (go back 
for a new matchstring) if 
CMPSTR fails in this way. 

The Y and N Instructions 

The routine that processes 
the Y and N instructions to test 
the matchf lag is very simple (see 
Fig. 6). The memory byte that 
holds the matchflag will equal 
one if the matchflag is set to 
"yes," and zero if the flag is set 
to "no." The processor routine 
sets the accumulator ap- 
propriately and compares its 
value with the matchflag. If the 
two are not equal, control is 
transferred to the command 
processor in the usual way and 
the next instruction is ex- 
ecuted. On the other hand, if 
the comparison is successful, 
the comparison instruction pro- 
cessor calls BACKUP to point 
at the instruction letter im- 
mediately preceding the Y or N. 
It then returns to the command 
processor at the point shown in 
Fig. 2a, not at the normal return 
point. The command processor 
then decodes the character 
preceding the Y or N just as \f it 
had preceded a colon. 

Processing Program 
Branch Instructions 

Statements involving the pro- 
gram branch instructions J and 



( 


J 

\ 


) 


CALL 
JPSUB 




OUMP BACK TO> 
THE COMMAND 
PROCESSOR j 



LOAD THE CONTENTS 
OF PNTER 
(THE ADDRESS OF 
THE LABEL) INTO 
MARKER 



<JUMP BACK TON 
THE COMMAND 
PROCESSOR > 



Fig. 7a. The J instruction pro- 
cessor. 



U are processed in a similar 
way. Those tasks common to 
both instruction processors are 
contained within a subroutine 
named JPSUB called by both in- 
struction routines. 

Fig. 7a shows the procedure 
for the J instruction. JPSUB is 
designed to return either the 
address of the label requested 
in the operand field of the state- 
ment or a failure flag. JPSUB 
stores the address of the label 
in a memory word called 
PNTER. The J instruction pro- 
cessor tests the failure flag 
when JPSUB returns. The flag 
indicates the label could not be 
found, so the J processor 
returns to the command pro- 
cessor and the next sequential 
instruction is executed. If the 
flag is down, the J processor 
loads the address stored in 
PNTER into the primary text 
pointer, MARKER, and then 
returns to the command pro- 
cessor. 

The command processor 
(Fig. 2a) loads that address to 
initialize SCANNR just as if it 
were the address of the colon 
starting the operand field of the 



C JPSUB J 



SET UP SCANNR 

TO FIND THE START OF 

THE LABEL NAME IN 

THE OPERAND FIELD 

OF THE J OR U 

STATEMENT 



CALL 
SCANNR 



DID SCANNR FIND 
A SLASH OR A 
i CARRIAGE RETURN 
I 




CARRIAGE 
RETURN 



SLASH 



SET FAILURE FLAG 



CALL LODBUF 
TO TRANSFER LABEL 
NAME TO VARIABLE 
NAME BUFFER 



( RETURN ) 



LOAD PNTER WITH 
THE ADDRESS OF THE 
START OF THE TINY 
PILOT TEXT AREA 



SET UP SCANNR 
POINT AT IPNTR) 
TARGET = "%" 
TERMINATOR = END OF 
TEXT MARKER 



CALL 
SCANNR 



1 



Fig. 7b. JPSUB. 



IS THE PROGRAM 
ALREACY IN A 
SUBROUTINE 




YES 



SAVE THE LOCATION 
OF THE COLON 
(FROM MARKER ) 
IN RETPTR 



'DID JPSUB FIND 



THE DESIRED LABEL 




NO 



LOAD MARKER 
WITH THE ADDRESS 
OF THE LABEL 
FROM PNTER 



RAISE SUBROUTINE 
FLAG 



'JUMP BACK TO> 
THE COMMA NO 
PROCESSOR J 



NO 




LOAD ADDRESS 
OF LABEL IN 
PNTER 



CALL LODBUF 
TO TRANSFER CANDI- 
DATE LABEL NAME TO 
MATCHSTRING BUFFER 



CALL COMPAR 
TO COMPARE TARGET 
LABEL NAME (IN VARIABLE 
NAME BUFFER) WITH CAN- 
DIDATE LABEL NAME (IN 
MATCHSTRING BUFFER) 



NO 




'JUMP BACK TO^ 

THE COMMAND 

V PROCESSORS 



'JUMP BACK TO\ 

THE COMMAND] 

x. PROCESSOR • 



Fig. 8. The U instruction processor. 



74 



I IS THERE A SUB- 
I ROUTINE IN 



PROGRESS 



L™^ 




NO 



'JUMP BACK TO> 
THE COMMAND 
PROCESSOR J 



LOWER THE SUB- 
ROUTINE IN 
PROGRESS FLAG 



LOAD THE RETURN 
ADDRESS (STORED 
IN RETPTR) 
INTO MARKER 



<)UMP BACK TO> 

THE COMMAND 
>. PROCESSOR J 



Fig. 9. The R instruction processor. 



it either finds a successful 
match or encounters the end of 
text marker terminating the 
Tiny PILOT text. 

Fig. 8 shows a flowchart for 
the U instruction processor. 
The actual branch to the Tiny 
PILOT subroutine is handled in 
exactly the same manner as in 
the J instruction processor. 
KTP saves the address from 
which the subroutine was 
called for the R instruction pro- 
cessor in a two-byte memory 
word named RETPTR. 

KTP allows only one 
subroutine to be active at a 
time. This restriction 
eliminates the need to imple- 
ment a software stack to hold 
the return addresses of nested 
subvou\\r\es. Therefore, the U 
statement processor must 
check a flag to make sure the 
programmer is not attempting 
to call one subroutine from 
another. Otherwise, the return 
address of the first subroutine 
would be lost. If the subroutine 
flag is raised, KTP will ignore 
the U statement and execute 
the next sequential instruction. 



The R instruction processor 
is shown in Fig. 9. First, the R 
processor examines the 
subroutine flag to check the 
validity of the address stored in 
RETPTR. If no subroutine is ac- 
tive, the R instruction is ig- 
nored. If the subroutine flag is 
raised, the R instruction pro- 
cessor turns it off. It then loads 
MARKER with the address 
stored in RETPTR. This is the 
address of the colon in the U 
statement that initiated the 
subroutine. Thus, when the R 
statement jumps back to the 
command processor, execu- 
tion continues with the state- 
ment following the subroutine 
call. 

The Counter 
Manipulation Routines 

Flowcharts for the two in- 
structions that change the 
values of the four integer 
counters are shown in Fig. 
10a. The two routines are iden- 
tical until the final step, where 
the Z instruction sets the 
counter to zero, while the B in- 
struction "bumps" the counter 



by adding one to its contents. 
The majority of the work for 
both instructions is therefore 
performed by a subroutine 
named FNDCTR (see Fig. 10b). 
FNDCTR starts with a 
routine named FORWRD to find 
the first non-blank character in 
the operand field of the state- 
ment. FORWRD is an exact 
reverse of the subroutine 
BACKUP used in the command 
processor. If the character 
that's returned by FORWRD is 
anything other than I, J, K or L, 
FNDCTR raises an error flag 
(the carry bit again) and 
returns. If the character is a 
valid counter name, FNDCTR 
subtracts the ASCII code for I. 
The result, a number between 
zero and three, is added to the 
address of the I counter to give 
the address of the counter re- 
quested in the statement. 

The contents of the 
numerical counters are tested 
by the X instruction processor 
(Fig. 11). The X instruction pro- 
cessor switches the global 
matchflag to "no." It must then 
decipher and evaluate the 
mathematical expression in the 
operand field of the X state- 
ment. If the expression is true, 
the X processor will set the 
matchflag. If false, the match- 
flag will be left at "no." 

The mathematical expres- 
sion in the operand field is com- 
posed of three parts: the name 
of the numerical counter (I, J, K 
or L), the symbol for one of the 
three relational operators (<, = , 



or >) and the decimal integer 
constant (a one-to-three digit in- 
teger between and 255). The X 
statement processor uses 
FNDCTR to obtain the desired 
counter address, which is 
stored temporarily in the 
pointer storage word BUFPTR. 
A call to FORWRD then fetches 
the next non-blank character in 
the operand field. If it is not the 
symbol for a relational 
operator, the X processor 
returns control to the command 
processor. Otherwise, the X 
processor subtracts the value 
of the ASCII code for = from 
the character for the desired 
relational operator. The result 
is - 1 for <, for = and + 1 for 
>. This value is temporarily 
stored, and the X processor 
again uses FORWRD to find 
the first character of the 
numerical constant. 

The conversion of numerical 
constants for ASCII decimal to 
internal binary is a straightfor- 
ward process. Many monitors 
are equipped to do this; if yours 
is not, you will have to write 
your own by fetching a 
character. To make sure it is a 
number, compare it to the 
ASCII characters for and 9. 
Strip the ASCII code by per- 
forming a logical AND with 
0F-|6. Store the result tem- 
porarily and fetch the next 
character. If it is not a number, 
you're done; the binary number 
in temporary storage is the 
desired result. Otherwise, 
multiply the number in tem- 



f FNDCTR J 



POINT AT COLON 
STARTING OPERAND 
FIELO (FROM MARKER) 



CZJ 



CALL FNDCTR 
TO ESTABLISH A 
TEMPORARY POINTER 
INDICATING THE 
DESIRED COUNTER 




LOAD THE COUNTER 
INDICATED BY 
THE POINTER 
WITH ZERO 



/JUMP BACK TO* 
( THE COMMAND 
\PROCESSOR, 



JUMP BACK TO 
THE COMMAND 
PROCESSOR > 



C^3 



CALL 
FNDC TR 




ADD ONE TO THE 
COUNTER INDICATED 
BY THE POINTER 



OUMP BACK TO^ 

THE COMMAND 

PROCESSOR 



YES 



JUMP BACK TO 

THE COMMAND 

V PROCESSOR y 



CAL L FORWARD 
TO FINO THE NEXT 

NON-BLANK 
CHARACTER 



r 



IS IT LESS 



I THAN THE ASCII 
"1" 



IS IT GREATER 
THAN THE ASCII 




YES 




RAISE FAILURE 
FLAG 


1 


i 


YES 




( RETURN J 



SUBTRACT ASCII 

" 1" FROM CHARACTER 

ADD RESULT TO 

ADDRESS Of COUNTER 

I 



[ RETURN \ 



Fig. 10a. The Z and B instruction processors. 



Fig. 10b. The subroutine FNDCTR. 



75 



porary storage by ten and add 
the new number. 

Multiplication by 10 consists 
of two left shifts (multiplies by 
4), an addition of the original 
number (results in multiplica- 
tion by five) and another left 
shift. Store this result and fetch 
the third character. If it is a 
number, repeat the multiply 
and add steps. Be sure to check 
for overflow at each step in the 
third iteration. Three-digit 
numbers can be as large as 999, 
but a single byte will only hold 
numbers less than 256. 

The X processor compares 
the numerical constant with 
the value in the counter. If the 
counter value is larger than the 
constant, the processor sub- 
tracts one from the indicator 
stored for the value of the rela- 
tional operator. If the constant 
is larger than the value in the 
counter, it adds one to the in- 
dicator. If they are equal, the in- 
dicator is unchanged. The X 
processor then tests the value 
of the indicator. If it is zero, the 
mathematical expression is 
true. The matchflag is set to 



"yes" before the X statement 
processor returns. 



Miscellaneous Instructions 

The E statement processor 
consists of two calls to system 
utility routines. The first is a 
call to the keyboard input 
routine (simply to throw the 
computer into a do-nothing 
loop while the user reads the 
last text typed on the CRT 
screen). Tapping the space bar 
or any other key results in a 
transfer to the monitor. 

The processor for the I in- 
struction is trivial, simply a 
transfer back to the command 
processor. Thus, the contents 
of the operand field of the I 
statement are ignored. The pro- 
cessor for the C instruction is 
almost as easy. It is a call to the 
operating-system utility 
routine that clears the CRT. 



Memory Allocation 

Obviously, the length of the 
Tiny PILOT interpreter depends 
on you and the instruction set 
for your microprocessor. My 



KTP interpreter is written in 
Z-80 machine language; it is 
designed to operate under the 
control of the Digital Group 
TVCOS operating system. The 
interpreter code begins at loca- 
tion 0880h and runs to location 
0C5Ah- I have left the re- 
mainder of page 0C open for 
future expansion of the KTP in- 
terpreter. There is also a gap in 
the coding between locations 
0A67h and OBOOh for possible 
patching if any bugs turned up 
after the system was in use. 
(None have turned up so far.) I 
use page ODh as storage for 
pointers, buffers, counters and 
variable names. Pages OEh and 
OFh make up the 512-byte 
storage area required for the 
eight variables. 

I assigned 6K of memory (all I 
had left at the time) to the Tiny 
PILOT text area. Even though I 
have more memory now, I have 
never felt the need to expand 
the text area. (An elementary- 
school child just won't pay at- 
tention for much longer than it 
takes to run a 6K Tiny PILOT 
program.) 

As a rule of thumb to com- 



pare the size of machine- 
language programs, consider 
that 8080 and 6800 code take 
about the same amount of 
memory to do the same task. 
Z-80 code should take about 20 
percent less and 6502 code 
about 20 percent more space 
because of the relative efficien- 
cies of their instruction sets. 
The KTP code is not particular- 
ly tight, however, so a skilled 
8080 or 6800 assembly- 
language programmer could fit 
a Tiny PILOT interpreter into 
about the same amount of 
space that I used. The speed of 
the interpreter should be suffi- 
cient to prevent any time delay 
in executing a Tiny PILOT pro- 
gram. 

Summary 

People who like doing things 
the easy way can purchase a 
copy of KTP on a Digital Group 
format cassette for $15 from 
Computer Mart, Inc., 1097 Lex- 
ington Street, Waltham MA 
02154. However you do it, 
though, get Tiny PILOT up on 
your system. This is a program 
that really is fun for the whole 



IN ELECTRONICS 



HAS THE LINE.. 



DIP/IC INSERTION TOOL with p|N STRAIGHTENER 




STRAIGHTEN PINS 



RELEASE 



PICK-UP 



INSERT 



* MINIMUM ORDER $25.00, SHIPPING CHARGE $1.00, NY. CITY AND STATE RESIDENTS ADD TAX 



OK MACHINE AND TOOL corporation 

3455 CONNER STREET. BRONX. NEW YORK. NY 10475 U.S.A. 

PHONE (212) 994-6600 TELEX NO 125091 



76 



family, and it just might help 
some school grades, too.B 

References 

1. Dr. Dobb's Journal of Com- 
puter Calisthenics and Or- 
thodontia, Vol. 1, No. 1, January 
1976. (This is a copy of the orig- 
inal description of the inter- 
preter for Tiny BASIC. A good 
starting place for those who 
know little about interpreters.) 

2. "Z-80 PILOT An Experimental 
Version"— program by Dean 
Brown, comments by Marc 
LeBrun, People's Computer 
Company, Vol. 5, No. 5, March- 
April 1977, p.2. (This is a 
description and assembly- 
language listing of an ex- 
perimental interpreter written 
by Dean Brown of Zilog, Inc. It 
has a rather spectacular bug, 
which is explained in their arti- 
cle. I learned a lot by studying 
this article, but then decided to 
start from scratch and design 
my own interpreter.) 

3. Scelbi's "8080" Software 
Gourmet Guide and Cookbook 
by Robert Findley, Scelbi Com- 
puter Consulting, Inc., Milford 
CT. (This book will teach you 
how to write all the machine- 
language-dependent utility 
routines you'll need for a Tiny 
PILOT interpreter or other pro- 
jects. A corresponding volume 



( 


X 

I 


) 


CLEAR THE 
MATCH FLAG 


I 


CALL 
FNDC TR 



1 



CALL FOR WHO 
TO FIND FIRST 
DIGIT OF NUMBER 



IS THE FAILURE 
FLAG RAISED 




YES 



/)U 



SAVE ADDRESS OF 
COUNTER IN 
BUFP TR 



I 



CALL FORWRD 
TO FIND RELA- 
TIONAL OPERATOR 



!~~ IS THE CHARACTER 

I LESS THAN ASCII >- 

!_:<: i 

[7s THE CHARACTER 

I GREATER THAN ASCII h 
|a ■ ( 

L_> I 




JUMP BACK T0> 
THE COMMAND 
ROCESSOR J 




JUMP BACK KT 
THE COMMAND 
PROCESSOR „ 



CONVERT 3 DIGIT 
DECIMAL NUMBER 
TO BINARY 
CONSTANT 



COMPARE RESULTS 
WITH CONTENTS OF 
COUNTER INDICATED 
BY BUFPTR 



ADD ONE TO 
TEMPORARY STOR- 
AGE OR REGISTER 



YES 



SUBTRACT ASCII 


"»" STORE RESULT IN 


TEMPORARY STORAGE 


OR REGISTER 


(-1 FOR "<". 


FOR "«", 


> 1 FOR ">" ) 



I IS TEMPORARY STOR- | 
1 AGE OR REGISTER h 
! EQUAL TO ZERO 




YES 



SUBTRACT ONE 
FROM TEMPORARY 
STORAGE OR 
REGISTER 



YES 



SET MATCH 
FLAG TO "YES" 
<♦ I) 



I 



m,* 



/JUMP BACK TO\ 
( THE COMMAND) 
V PROCESSOR/ 



Fig. 11. The X instruction processor. 



has also been written for the 
6800. Owners of other CPU 
chips can only hope that the 
Scelbi people get around to 



their chip.) 

4. "Source Code for 8080 
PILOT, Version 1.1" by John 
Starkweather, DDJ, etc., Vol. 2, 



No. 5. (This interpreter is about 
twice as long as KTP. It is less 
suitable for children, but still is 
not hard to use.) 



IN WIRE-WRAPPING 



U- HASTHELINE 



COILTITE " SLEEVES 



COILTITE BITS 



HAND WRAPPING 



iaj&.ju^;ys-- ■- ■- 3 



HAND UNWRAPPING 





STRIPPER 



SAFETY 
PLIERS 




BATTERY 



WIRE DISPENSER 



I C INSERTER 



WIRE 
CUT AND STRIP 



OK MACHINE AND TOOL CORPORATION 

3455 CONNER STREET. BRONX. NEW YORK. N.Y. 10475 U.S.A. Q5 

PHONE (212) 994-6600 TELEX NO. 125091 



77 




Can your computer read and solve this problem by itself? 

"ON THEIR VACATION, TOM AND DICK VISITED A 
FARM. WMLE THERE, THEY NUliil A PEN 
C<liiii|lii CHliiENS AND PIGS. TOM SAID 
THERE WIRE 3 TIMES AS MANY CHICKENS AS 
PIGS. HI SAID HE COUNTS© WO LEGS IN THE 
PEN. HOW MANY CHICKENS WERE IN THt#S«Ji* 



withNLOS/1, it can! 



NLOS/1 is a cassette-based system requiring a minimum 
of 12K, a serial I/O board and any cassette interface. 
The system comes complete with a fully documented set 
of assembly language source listings. The cost is di|: 
$200. 

STOP PROGRAMMING YOUR COMPUTER, 

EDUCATE IT! 
ORDER TODAY! 



C57 




R.D. #3 BOX 192A 
NAZARETH PA 18064 



TELETYPE MODEL 33 ASR 



COMPUTER I/O COMPLETE WITH 




Tape Punch • Ready to Go 
Tape Reader • Line/Local Wired 
• Guaranteed 30 Days 



$840 



00 





INCLUDING PACKING 
F.O.B. N.J. FACTORY 



COMPLETE COVER READY TO INSTALL .... $ 35.00 

COPY HOLDER (182036) $ 14.00 

TAPE UNWINDER (12" NEW) $ 55.00 

*IND UP PAPER TAPE WINDER (1") $ 52.00 

ELECTRIC PAPER WINDER ILPW 300 NEW) ... $ 50.00 

DEC TYPE READER RUNCARD $ 45.00 

ACOUSTIC COUPLER 

OMNITEK 501 A (NEW) $160 00 

READER POWER PACK (182134) $ 35.00 

EIA RS 232 INTERFACE $ 56.00 

ACOUSTIC COVERS with FAN (NEW) $258 00 



If its for TELETYPE We Have It. 




If you doiTl see what you need, CALL or WRITE! 

TELETYPEWRITER COMMUNICATIONS SPECIALISTS 

550 Springfield Avenue • Berkeley Heights, H. J. 07922 
(201)464-5310 • TWX: 710 98*3016 • TELEX: 13-6479 



T13 



SUBSIDIARY OF VAN'S W2DL T ELECTRONICS. 



ADM-3A 



IN KIT $ 
FORM 



756 



00 




• All equipment 
F.O.B. Dallas, Texas 
or Anaheim, California 

• Terms — check or 
money order with 
order 

• Delivery in 30 days 

• Add $20 for Shipping 
and Handling 



OPTIONS: 

• Lower case option 
add $100.00 

• Numeric key pad 
option add $75.00 



• 80 CHARACTERS/LINE 

• 24 LINES/SCREEN 

• ADDRESSABLE CURSUR 
•9, 10, or 11 BIT WORDS 



• 75-19,200 BAUD 

• FULL & HALF DUPLEX 

• ODD/EVEN/NO PARITY 

• RS232 INTERFACE OR 
20 ma CURRENT LOOP 



GET COMPLETE DETAILS WITH A DIRECT CALL: 
14 258-2414 TWX 910-8605761 TELEX 730022 

800 527-3248 



i 



mz ia ZDO-za in iwa y iu-oou-3> 
capital 



C53 



930 N. BELTLINE • 



equipment brokers 

IRVING, TEXAS 75061 f 



r 



DO 

THESE 

NUMBERS 

MEAN 

ANYTHING 

TO 

YOU 




Wasatch delivers quality system components from stock 






4K x 8 RAM 
2K/4K x 8 PROM 
8-SLOT MOTHER 
80 LINE DIGITAL 



I/O 



Assem. /Tested 

$89.95 

5000 



Kit 

$79.95 
79.95/129.95 
4000 
59.95 



PCB 

$22.50 
22.50 
20.00 
20.00 




III! If 



4K RAM 



New 5V system components under development 

• 8K x 8 EPROM (2716) 

• 16/32 Channel, 8 Bit AD 

• 4 Channel, 8 Bit DA 
Wasatch also delivers prime semiconductor 
memory at reasonable price, in addition tocus 
torn design services 




78 







TRENTON STATE COLLEGE 

Trenton, New Jersey 



The Third 



Trenton Computer Festival 

April 22 & 23, 1978 




Super Outdoor Flea Market 

Surplus computer gear, bargains galore, over 5 acres 
of space ($2/spot, no electricity). 




Forums, Talks & Seminars 

Meet the leading experts and hear sessions on 
robots, computer music, amateur radio, etc. 

Hundreds of Door Prizes 

* * * 
Banquet Saturday night 

For more information call: 
609-771-2487 or 201-277-2063 

Admission $4 Students $2 

Hours: 10AM-6PM Saturday; 10AM-4PM Sunday 

• • • 
Banquet $9. Avoid disappointment — p reregister for the 
banquet! Send your check for $9 per person to: TCF-78, Tren- 
ton State College, Trenton, NJ. 08625. 




Indoor Commercial Exhibit Area 

90 exhibitor booths showing newest products; special 
discounts; funky games to play. 





\x 


1 J2-L21 [ 

**b%^ TRENTON, 


^EXIT 7 






TRENTON 

STATE 

COLLEGE 


1 


cell 

'HILA 11 



Convenient To NY, PA, MD & DEL 

Easy to get to; free parking for over 6,000 cars. 

Sponsored By: 

Amateur Computer Group 
of New Jersey 

Philadelphia Area 
Computer Society 

Trenton State College 
Digital Computer Society 

Dept. of Engineering Technology 
Trenton State College 

I.E.E.E. 
Princeton Section 



79 



Joe Kasser 

11532 Stewart Lane 

Silver Spring MD 20904 



Blue Is the Color 

Solid State Music is the company 



Lurking in the back pages of tisements that describe a 
computer hobbyist maga- growing family of widely 
zines are some low-key adver- distributed, economical Altair- 




The 4K RAM board with 3K of RAM chips fitted. Switches select 
address block and wait states. Each kilobyte of RAM has its own 
voltage regulator. Heat sinks are not provided for the regulators. 



^■^ ^^^^^^^^t ^^^^^^^^k ^^^^^^^^t 

9 m mmF» 



'•MlnA""*' 



WMi 



• ■ • m f t^lAAJUt 






i4k c/Ubf ; PP1**^J 

" «-■■>■ »* * ™ ^^ ^^ ^^^W ^^^^^^^^T ^^^^^^^^^ ^^^^^^^^ 



iff . 1 

^^^^^^^^ A ^^^^^^* ^^^^^^^^ *^^^^^^^^ ^^^^^^^^« ^^^^^^^^- i 

^^^^^^^H ^^^^W ^^^^^^^^T ^^^^^^^^^ ^^^^^^^^T ™ 

W^SV WHW VMOT «MMMM 

MMAMrit ^A^fcM^ ^^^^^^ ^^^^^^ 



^*K 




hmmmm 



A partially assembled 8K RAM board. Sockets are used for every 
IC. Four regulators are provided for each 2K of memory. Again, no 
heat sinks are provided. The battery backup bus connector is at 
the top of the card. 



compatible computer cards: 
Solid State Music's Cybercom 
boards. 

Each card is an industrial- 
quality double-sided glass 
epoxy printed circuit board 
with plated-through holes (and 
I shouldn't forget the beautiful 
blue color) and ample, well- 
written documentation. For 
each card, the theory of opera- 
tion is described, full 
schematics and sample uses 
are given, and software is even 
provided where applicable. The 
parts supplied with each kit are 
of good quality. The IC sockets 
are all low-profile Tl types, and 
the memory and microproces- 
sor support ICs are made by 
NEC. 

Some of the cards not 
reviewed here, but which are 
now available, are a music in- 
terface card, a 16K static RAM 
card, a 16K EPROM card using 
2708s and a two-serial four- 
parallel port I/O card. If they 
are built and documented to 
the same standards as the kits 
reviewed here they should also 
be good values. 

Now, let's consider some of 
the kits currently available 
from Solid State Music. 

MB-3 2K/4K PROM Board 

The MB-3 will handle 16 
1702-type EPROMs. Heat sinks 
are not included, and I suggest 
that you add your own. The -9 



V supply is obtained by 
floating a three-terminal -8 V 
regulator. Since all the 1702As 
I've tried work on -8 V, it is 
possible that the floating com- 
ponents could be eliminated. 
But this is a review, not a 
redesign. 

The base address of the card 
can be set to any 4K block, and 
up to four wait states can be 
set up for slow PROMs. All such 
preset adjustments are made 
by DIP switches. 

MB-4 4K/8K RAM Board 

While this card has space for 
4K of 21L02-type RAM, 8K can 
be put on the card by pig- 
gybacking an additional 4K on 
top of the sockets. The board 
was laid out with that feature 
in mind, and the decoding for 
the second 4K chip select is 
available at strategically 
placed pad locations. The 
documentation gives full in- 
structions on how to carry out 
the operation. There is a 
memory protect flip-flop on the 
card to inhibit memory write 
operations. The wait states are 
fully synchronous for slow 
memories, but as supplied, the 
kit requires zero wait states. If 
you already own a set of slower 
2102s you can buy the blank 
board and use your chips. The 
base address of the card can 
be set to any 4K block between 
0000 and F000 hex. All preset- 



80 



ting is done by means of DIP 
switches. The instruction set 
shows how to include the Phan- 
tom Pulse for the Processor 
Technology SOL. 

MB-6 8K RAM Board 

This card contains 8K of 
21L02 RAM, and the base ad- 
dress can be set to any 8K 
value. Up to two wait states 
can be preset. A memory pro- 
tect feature enables blocks of 
memory to be protected in sets 
of 256, 512, 1K, 2K, 4K and 8K 
bytes. Preset adjustments are 
by DIP switches. All ICs are pro- 
vided with low-profile sockets. 
A jumper location and simple 
modifications are available to 
implement the Phantom Pulse 
for the SOL machine. The 
board is soldermasked to aid in 
preventing unwanted connec- 
tions. Four three-terminal 
regulators are provided without 
heat sinks, and they do get 
warm if forced air cooling is not 
utilized. Backup battery power 
for the standby mode is avail- 
able through a connector at the 
top of the card. 

Sockets are not provided for 
the DIP switches. I would have 
preferred them so I could 
replace the switches by a fixed 
jumper pad on a chip header 
and use the switch on another 
card under development; but 
that is personal preference on- 
ly. There are only four disk 
capacitors on the whole card, 
which seems to be too few, yet 
the card works beautifully. The 
memory protect circuit uses a 
21L02, but if the feature is not 
desired, that chip becomes a 
spare. 

MT-1 Motherboard 

This is a single-sided 3/16th- 
inch-thick board, predrilled for 
up to 15 connectors spaced 3/4 
inch apart. Holes are also 
drilled to support Altair-style 
card guides. The holes in the 
board are large enough for 
wire-wrap sockets as well as 
solder tail. The board can be 
sliced on a guillotine-type cut- 
ter into sections for special- 
purpose equipment. Holes and 
space are provided for bus- 
decoupling capacitors on all 
three power bus lines. A set of 
holes has been drilled at one 



end of the board to accom- 
modate an extension unit or 
line terminators. 

XB-1 Extender Board 

The extender is a no- 
nonsense, no-frills board that 
does only what it advertises. It 
extends all 100 bus lines up- 
ward so that a card can be 
worked on while connected to 
the bus. It is designed so that a 
wire-wrap connector can be 
soldered to the top of the card. 
If care is taken, the connector 
pins can be bent outward 
before soldering, leaving 
points for attaching a scope 
probe. This type of card is a 
must for troubleshooting. 

VB-1 Video Interface 

The VB-1 displays uppercase 
and lowercase graphics and 
Greek characters using a 
Motorola MCM 6571 integrated 
circuit. Sixteen lines of either 
32 or 64 characters can be 
displayed, and the video is 
available at the top of the card 
as composite video or as 
separate video and sync. The 
characters can be displayed as 
black on white or white on 
black, and a mixture of 
characters and graphics can 
also be displayed. As the 
choice between reverse video 
or graphics is switch-selected, 
those features cannot be 
mixed. One kilobyte of on-card 
memory holds the fully in- 
terlaced screen display. The 
supplied memory is 21L02-4 
and does not require any wait 
states. 

Documentation is supplied, 
and the new software package 
is excellent. It shows how to 
use the alphabetical and 
graphical displays and con- 
tains sample programs, in- 
cluding one that lets you ad- 
dress each dot on the screen 
separately. This feature is 
great for pong or space-war 
programs or just plain doo- 
dling. The software is set for a 
base address of 3000 hex. 
However, if the switch-selected 
address is set to CC00 hex, 
Processor Technology soft- 
ware will run (but not scroll) 
without hardware or software 
modification. 

Control of the display is 




Extender board with connector fitted at the top. The connector is 
an Imsai-type with wire-wrapped pins. If the pins are bent before 
soldering it is possible to make hooks for attaching a test probe. 




The I/O board kludged for 8251 serial I/O programmable 
ASCII/Baudot 45.5 at 110 baud. (My kludge—SSM's PC decoding 
and buffering.) This card contains two input and two output ports 
feeding a tape reader, keyboard and punch, as well as the 8251 
circuitry. 



shared between hardware and 
software. This may or may not 
be an advantage in your ap- 
plication. Even the cursor 
character can be changed 
under software control. The 
Greek letter feature is useful to 
supply prompts in the event of 
user input errors. 

IO-2 I/O and Universal Board 

The IO-2 provides one input 
and one output port plus 
decoding for nine ports. Output 
is from a ribbon cable via a DIP 
socket, and a short length of 
cable is supplied with the kit. 
Pads are placed on the board 
for all manner of DIPs, and 
space is also provided for two 
three-terminal voltage regula- 
tors, one of which is dedicated 
to the 5 volt supply. 

Schematics and sugges- 
tions are provided for adding 
PROMs or a serial interface for 
a CRT or Teletype terminal. In- 
structions are also given to 
wire the serial port for Mits or 



Processor Technology soft- 
ware compatibility. There is a 
schematic for generating 
multifrequency clocks for a 
UART from the 2 MHz bus 
clock (you can get 1200, 600, 
300, 150 or 110 baud). The IC 
socket holes will accom- 
modate either solder-tail or 
wire-wrap sockets. The IO-2 is 
an excellent board for general- 
purpose I/O work. 

Summary 

The cards are well made and 
can be assembled in one or 
two evenings. The gold-plated 
connector even plugs into the 
socket without any shaving 
operations. The cards are 
available assembled, as kits or, 
in some cases, as blank boards 
with instructions, which makes 
them well suited to club pro- 
jects. They are the best value 
I've seen yet. About the only 
fault I could find was that they 
were not drilled for card 
pullers. ■ 

81 



Kid Korner 



Cash Register: 

a practical math simulation 



John Eric Victor 
11 Idar Court 
Greenwich CT 06830 




Learning math can be fun with the author's Cash Register game, 
which simulates a checkout counter at a grocery store. The pro- 
gram is written for the TRS-80. 



A recent testing of high- 
school seniors in Dade 
County, Florida, revealed that 
almost half did not possess the 
minimum basic math skills to 
fill out a check or add up a gro- 
cery list. Fifty years ago, these 
students would have had 
enough reading and math skills 
to get by . . . today, many of 
them will be unemployable. 

As our society becomes in- 
creasingly dependent on com- 
plex technology, our present 



educational system will be- 
come less and less able to meet 
the demands made on it. The 
system needs substantial 
changes, but these will not ap- 
pear overnight. And given the 
record of some educational re- 
formers, these changes could 
produce a system even worse 
than the one we have now. As a 
practical matter, the best short- 
range solution might be for 
parents to take some of the 
responsibility for their chil- 



dren's education. 

For many families a compu- 
ter may be just what the doctor 
ordered. At $600, the TRS-80 
costs about as much as some 
of the more expensive sets of 
encyclopedias. On one level, 
the computer can test children 
for necessary basic skills. On 
another level, the computer can 
give children drill and practice 
in skills already learned. The 
computer can also be used to 
teach new material in such a 
way that a program is individu- 
alized for each child. Best of all, 
this can all be done without 
adult supervision, since the 
computer acts as the tutor. And 
the home computer is available 
whenever the child wants to 
use it. 

One of the problems with 
traditional teaching methods is 
that they do not simulate the 
real world very well. The com- 
puter, on the other hand, excels 
at simulations. Some of the 
more popular computer games 
are, in fact, simulations, and 
many of these programs can 
make abstract concepts more 
meaningful to children than 
straight drill and practice. 

This program, written for my 
new TRS-80, is a simulation of a 
checkout counter at a grocery 



store. In the Cash Register pro- 
gram, the customer buys an 
item costing X and pays for it in 
whole dollar amounts. The 
child must then make change in 
dollars, half dollars, quarters, 
dimes, nickels or pennies. 
Change can be given in any de- 
nomination as long as the total 
amount is correct (as would be 
the case in real life). 

For example, an item costs 
50 cents and the customer pays 
one dollar. The child might then 
type in one half dollar or 50 pen- 
nies for change, which would 
be considered correct since 
either one adds up to 50 cents. 
The child then gets a CORRECT 
CHANGE! THANK YOU, and 
the program goes to the next 
situation. If the change was in- 
correct, the child is told 
whether the amount was too lit- 
tle or too much and by what 
amount, and the problem is 
repeated. An incorrect entry 
can be changed by typing in a 
- 1 and starting the problem 
over again. For those who feel 
this may not be a practical way 
to learn how to make change, I 
remind you that it is usually 
taught out of a book (in 
school)— and the computer is 
more interactive than a book! 

The situations are stored in 
DATA statements so the prob- 
lems can be presented in order 
of difficulty. The program user 
can also add more problems 
with additional DATA lines. 
Line 5000 contains a flag that 
restores the DATA to the first 
situation. 

Working with 

Radio Shack Level I BASIC 

The TRS-80 is supplied ini- 
tially with Level I BASIC in 4Kof 
ROM. This BASIC has its limita- 
tions like any 4K BASIC, but it 
still has some great features 
for computer-assisted instruc- 
tion. One of these is the clear 
screen command (CLS), which 
allows the programmer to 
remove distractions and old 
problems from the screen. The 
PRINT AT command allows the 
programmer to position text 
and the cursor anywhere on the 
video screen. These two com- 
mands can eliminate some of 
the annoyance caused by 



82 



scrolling, as well as provide the 
programmer with special ef- 
fects such as animation. 

This BASIC also recognizes 
string variables that are 
restricted to A$ and B$. Neither 
can be longer than 16 charac- 
ters, and they cannot appear as 
part of a logic statement (i.e., IF 
A$ ■ "YES" THEN GOTO 50). 

There was one problem I did 
have with this BASIC. The pres- 
ent form of the Cash Register 
program uses integer math in- 
stead of decimals. When I first 
wrote the program, I used deci- 
mal coefficients instead of 
whole numbers, but I could not 
get the IF-THEN statements to 
work properly. Even when I in- 
put the correct answer, the pro- 
gram would indicate that my 
answer was too high or too low 
by an amount such as 1.9 E 
-07! Obviously, there are 
some inaccuracies in the float- 
ing-point arithmetic. 

When adding more DATA 
lines to this program, the user 
must be careful to get the data 
in the correct order. The pro- 
gram is written so that the first 
piece of data read is a string for 
A$— the name of the item being 
purchased. The next piece of 
data is the price in the form of a 
string. I did it this way so the 
price could be reported in a 
variety of forms such as $1.50, 
or a dollar and a half, etc. The 
next piece of data is the price of 
the item in the form of an inte- 
ger or whole number, and the 
last piece of data is the amount 
paid (also an integer). Another 
way to look at this is to think of 
all of the numbers in cents 
rather than dollars. 

For the sake of clarity, I did 
not abbreviate any of the pro- 
gram statements. However, the 
reader may find program entry 
easier and faster if abbrevia- 
tions, such as P for PRINT or IN 
for INPUT, etc., are used. In the 
case of direct execution in an 
IF-THEN statement, the THEN 
is optional. For example, IF 
A = 1 THEN CLS can also be 
written IF A = 1 CLS. The pro- 
gram in unabbreviated form 
takes up 2645 bytes of memory. 

Convening to Other BASICS 

Converting this program to 



other BASICS should not be too the CLS and PRINT AT state- ed as input prompts: 

difficult. The first thing that ments. The coin denominations 

must be done is to drop all of in lines 350 to 390 can be print- 355 INPUT "DOLLARS", S 



10 REM $$ CASH REGISTER $$ BY JOHN ERIC VICTOR 

12 REM IN RADIO SHACK LEVEL I BASIC 

15 REM INTRO GRAPHICS IN LINES 20 to 60 

20 CLS 

30 FOR X-ITO 192 STEP 2 

40 PRINT AT X;: PRINT 4t 0": NEXT X 

50 FOR X= 1 TO 192 STEP 2: PRINT AT X;: PRINT "$": NEXT X 

60 FOR X= 1 TO 192 STEP 2: PRINT AT X;: PRINT "0": NEXT X 

80 REM PROGRAM 

100 PRINT "THIS IS THE GAME OF $$ CASH REGISTER $$." 

110 PRINT "PRETEND THAT YOU ARE RUNNING THE CASH REGISTER" 

120 PRINT "AT A LOCAL GROCERY STORE. I WILL BUY THINGS AND" 

130 PRINT "GIVE YOU MONEY. YOU WILL GIVE ME CHANGE. YOU CAN" 

140 PRINT "GIVE ME THE CHANGE IN PENNIES, NICKELS, DIMES OR WHATEVER," 

150 PRINT "BUT IT MUST ADD UP TO THE CORRECT TOTAL." 

160 PR1NT:PR1NT "PRESS ENTER TO START . . . ": INPUT A$ 

200 REM A$ = NAME OF ITEM IN DATA, B$ = PRICE 

205 REMT= PRICE, G= PAYMENT 

210 REM S= DOLLARS, H= HALF DOLLARS, Q= QUARTERS, D= DIMES 

220 REM N = NICKELS, P - PENNIES 

300 REM PRESENT PROBLEM 

305 CLS 

310 READ A$, B$, T, G 

312 IF G= THEN RESTORE: GOTO 310 

315 PRINT 

320 PRINT: PRINT "1 BOUGHT";A$;"THAT COST";B$;"." 

325 PRINT "I GIVE YOU";G/100;"DOLLAR(S) FOR IT. WHAT DO YOU GIVE ME' 

330 PRINT "IN CHANGE? (START WITH DOLLARS AND WORK DOWN TO PENNIES." 

332 PRINT "TYPE -1 TO REDO THE PROBLEM.)" 

335 REM 3 SPACES BETWEEN THE HEADINGS 

337 PRINT 

340 PRINT "DOLLARS HALF DOLLARS QUARTERS DIMES NICKELS PENixIES" 

345 REM NEXT STATEMENT CLEARS LINE IN CASE OF ERROR 

350 PRINT AT 512 

353 REM MAKE CURSOR MOVE TO EMPTY COLUMN 

355 PRINT AT 512;. INPUT S: IF S = -1 THEN 350 

360 PRINT AT 522;: INPUT H: IF H= -1 THEN 350 

370 PRINT AT 537;: INPUT Q: IF Q= -1 THEN 350 

380 PRINT AT 548;: INPUT D: IF D= -1 THEN 350 

385 PRINT AT 556;: INPUT N: IF N= -1 THEN 350 

390 PRINT AT 566;: INPUT P: IF P= -1 THEN 350 

400 REM CHECK TO SEE IF CHANGE IS CORRECT . . . 

410 C= S*100 + H*50 -l- 0*25 +D*10 + N*5 + P 

420 IF G - C = T THEN PRINT "CORRECT CHANGE! THANK YOU.": GOTO 500 

430 IF G -C<T THEN PRINT "TOO MUCH. YOU OVERPAID ME BY"; 

440 IF G - OT THEN PRINT "NOT ENOUGH. YOU UNDERPAID ME BY"; 

445 REM DIFFERENCE BETWEEN RIGHT AND WRONG AMOUNTS 

450 A = ABS(G - C - T)/100: Z= INT(A) 

455 Y* ABS(ABS(G - C - T) - Z*100) 

457 IFZ= THEN PRINT Y;"CENTS.": GOTO 465 

460 PRINT Z;"DOLLAR(S) AND";Y;"CENTS." 

465 PRINT: PRINT "TYPE AND PRESS ENTER.": INPUT A 

467 CLS 

470 GOTO 3 1 5 

500 PRINT: PRINT "TYPE TO GO ON, OR TYPE 1 TO STOP. THEN PRESS ENTER." 

505 INPUT A 

510 IF A= 1 CLS: PRINT AT 448;: PRINT "I HOPE YOU ENJOYED THE GAME.": END 

520 GOTO 300 

1000 DATA "SOAP", "50 CENTS", 50, 100 

1005 DATA "PAPER TOWELS", "75 CENTS", 75, 100 

1010 DATA "MILK", "95 CENTS", 95, 100 

1015 DATA "A DOZEN EGGS", "92 CENTS", 92, 100 

1020 DATA "STEAK", "$1.50", 150, 200 

1025 DATA "3 STEAKS", "$3.50", 350, 500 

1030 DATA "CAT FOOD", "82 CENTS", 82, 100 

1035 DATA "BAG OF FLOUR", "$1.25", 125, 500 

1040 DATA "ORANGES", "$1.03", 103, 500 

1045 DATA "BAG OF GROCERIES", "$18.07", 1807, 2000 

5000 DATA "X", "X", 0, 

Program listing. 



83 



Another programming 
change that may be required in- 
volves the GOTO statements. In 
Radio Shack BASIC, when an 
IF-THEN condition is false, the 
interpreter goes to the next 
line. It does not execute any 
other statements on the line 
with the IF-THEN statement. In 
the line shown in Example 1, if 
A does not equal 1, the re- 
maining statements on the line 
are not executed. 

With some forms of BASIC 
the interpreter will continue 
along the line even if the condi- 
tional statements are false. If 
this is the case, the IF-THEN 
statement can be changed so 
that on a true condition it sends 
the computer to a GOSUB rou- 
tine that contains all of the 
statements to be executed 
when the condition is true. 

Testing 

Just as a program is run on a 
computer to debug it, an educa- 
tional program should be run 
with human subjects to identify 
any teaching bugs. All of the 
programs that appear in this 
column have been tested to 
some extent. However, I would 
like to see some results from 
testing a cross-section of chil- 
dren from various back- 
grounds. I would appreciate 
hearing from Kilobaud readers 
who have tried out the pro- 
grams on their children. ■ 



510 IF A= 1 THEN CLS: PRINT AT 448;: PRINT <4 I HOPE YOU ENJOYED THE GAME": END 

Example 1. 



THIS IS THE GAME OF $$ CASH REGISTER $$. 

PRETEND THAT YOU ARE RUNNING THE CASH REGISTER 

AT A LOCAL GROCERY STORE. I WILL BUY THINGS 

AND GIVE YOU MONEY. YOU WILL GIVE ME CHANGE. YOU CAN 

GIVE ME CHANGE IN PENNIES, NICKELS, DIMES OR WHATEVER, 

BUT YOU MUST GIVE ME THE CORRECT CHANGE. 

PRESS ENTER TO START . . . 

I BOUGHT SOAP THAT COST 50 CENTS. 

I GIVE YOU 1 DOLLAR(S) FOR IT. WHAT DO YOU GIVE ME 

IN CHANGE? (START WITH THE DOLLARS AND WORK DOWN TO PENNIES. 

TYPE -1 TO REDO THE PROBLEM.) 



DOLLARS HALF DOLLARS QUARTERS DIMES NICKELS 

?0 ?1 ?2 ?5 ?10 

TOO MUCH. YOU OVERPAID ME BY 2 DOLLAR(S) AND CENTS. 

TYPE AND PRESS ENTER. 



I BOUGHT SOAP THAT COST 50 CENTS. 

I GIVE YOU 1 DOLLAR(S) FOR IT. WHAT DO YOU GIVE ME 

IN CHANGE? (START WITH THE DOLLARS AND WORK DOWN TO PENNIES. 

TYPE -1 TO REDO THE PROBLEM.) 

DOLLARS HALF DOLLARS QUARTERS 

?0 ?1 ?2 

?0 ?1 ?0 

CORRECT CHANGE! THANK YOU. 

TYPE TO GO ON, OR TYPE 1 TO STOP. THEN PRESS ENTER. 
?1 



I HOPE YOU ENJOYED THE GAME. 



READY 



PENNIES 
?50 



DIMES 
? t 


NICKELS 


PENNIES 


?0 


?0 


?0 



Sample run. 




Now in 

North 

Jersey 



Computer 

240 WANAQUE AVE., P0MPT0N LAKES, N.J. 07442 

micro-mini 
computer center 

STORE HOURS: 

MON-FRI 6 30p m to 1 p m 
SAT. 10 a.m. to 6 p.m. C64 

Phone: (201) 835-7080 

TBleX -130"376 answer back AMCALL P0MT 



PRINTED CIRCUIT 
BOARDS 

(BARE BOARDS ONLY) 

29.95 EA. 

YOUR CHOICE OF 

S-100 BUS 

8K WW EXT 4KROM 

OR 

6800 BUS 

8K WW EXT 

We also stock components 
for all above boards. 

Guaranteed, if not completely 

satisfied return for refund. 

We back everything we sell. 

SEND SASE FOR OUR CATALOG TO: 
BARNES ELECTRONICS 

P.O. BOX 673 
OAK RIDGE, TN. 37830 

PAYMENT TERMS CASH WITH ORDERS. 

ALL ORDERS FOB. OAK RIDGE, TN. 

TN. RES. ADD 4V2%. ADD $2.00 PER BOARD 

FOR POSTAGE AND HANDLING. 
(WE ACCEPT MASTER CHARGE AND B.A.C.) 



rwwwwwww* 

"LS1-11 vs. 8080 & 6800: 
is the H 1 1 worth 
twice as much?" 



This special report will be sent 
free to all subscribers to 

BUSS 

the independent newsletter for 
users of Heathkit U) computers. 
For the next 12 issues send 
$6.60 to: 

Charles Floto 

267 Willow St. 

New Haven CT 06511 

F4 



84 



COMPUTALKER 



A 



® o o : 



\l 




S-100 BUS 
1 



CSR 1 

SYNTHESIS-BY-RULE 

SOFTWARE 



SPEAK "KAAMPYUTAOLKER" 



MODEL CT-1 SYNTHESIZER 
CSR1 SOFTWARE SYSTEM 
DEMONSTRATION CASSETTE 



395.00 

35.00 

2.95 



CALIF RESIDENTS ADD 6% SALES TAX 



WRITE FOR INFORMATIVE LITERATURE 

COMPUTALKER CONSULTANTS 

BOX 1951, DEPT. K, SANTA MONICA, CA 9040C 

C36 



MINATURE SOLID STATE 

202 VIDEO CAMERA KIT 

FEATURING A 100 x 100 BIT SELF SCANNING CHARGED COUPLED DEVICE 



THIS UNIQUE UPDATED CAMERA KIT 

FEATURES THE FAIRCHILD CCD 202C IMAGE SENSOR 



FEA TURES 

• Sensitive to infra red 
as well as visible light 

• May be used in a vacuum, 
under water and high altitude 

• May be used in a magnetic 
environment because there is 
no high voltage 

*■ £>',', 'c/aflPQAywAfc on.ouo.t.ed, on 
parallel 3 3 /4"x6V 2 " single 
sided boards 

• Total weight under 1 lb. 



ADVANTAGES 

• IN THE FUTURE 
WE WILL SUPPLY A 
COMPUTER VIDEO INTERFACE CARD 

• All clock voltages operate at 6V 
reguiring no adjustments 

• Higher video output signal 

• We supply the power board, so only 
a 5V 1 Amp power source is needed 

• The circuitry has been simplified for 
easier assembly 

• Two level TTL output is supplied for 
interfacing 

We supply all semiconductors, boards, data sheets, 

diagrams, resistors, capacitors, and 8MM lens. 
Sorry we do not supply the case, batteries and 5V supply. 




$34900 



Add $2.00 Postage 
and Handling 



SOLID STATE SALES 



H8& 
TRS-80 



m 



SOFTWARE 



ORDER- 
CODE 



DESCRIPTION 



HEATHKIT H8 SOFTWARE 

Benton Harbor Dasic Games 
H8-BG1 BIORYTHMf CHOMP, TEASER. DATUM 

CRAPS, TRAP* 23-MATCHES, NUMBER 
H8-BG2 SNARK, REVERSE , STARS, TAXMAN 

PIPFOP, SLOTS, HURKLE, MUGWUMP 



MINIMUM 
SYSTEM 



BHB-8K 
BHB-8K 



H8-MG1 
H8-MG2 
H8-MG3 
H8-MG4 



H8-C0DE 

H8-KING 
H8-DISM 
H8-EDUC 



Machine Language Games 
Manipulation Games 
Number Games 
Casino Games 
Calculator & Clock 



(Front Panel) 

MEM-4K 
MEM-4K 
MEM-4K 
MEM-4K 



Machine Language Programs 

Ham Code Practice Program MEM-4K 
(Front Panel & Terminal Versions) TRM-4K 

Kingdom Game TRM-4K 

Program Eiisassembler TRM-4N 

Educator-8080 Teaches machine TRM--4K 
programming interactively 



RADIO SHACK TRS-80 SOFTWARE 

Level One Basic Games and Programs 
R8-BG1 BIORYTHM, CHOMP, TEASER, BATUM L1B-4K 

CRAPS, TRAP, 23-MATCHES, NUMBER 
R8-BG2 SNARK, REVERSE, STARS, TAXMAN L1B-4K 

FIPFOP, SLOTS, HURKLE, MUGWUMP 



PRICE 
EACH 



♦10.00 
♦10.00 



♦10.00 
♦10.00 
♦10.00 
♦10.00 



♦10.00 

♦10.00 
♦10.00 
♦10.00 



♦10.00 
♦10.00 



LEGEND: BHB-8K = H8+8K+H9/H3A Uses Benton Harbor Basic 
MEM-4K = H8+4K ONLY Uses Front Panel 
TRM-4K = H8+4K+H9/H36 Interactive thru Terminal 
L1B-4K = TRS-80+4K Uses Level I Basic 

Includes : Cassette, Source Listing, and User Documentation 
Terms : Check, Money Order, BAC/VISA, Master-Chg - NO CODs » 

Foreign orders in US funds, plus ♦lUS/Cassette Postage 
Shipment I In seauence as received ba UPS or 1st Class Mail 
Dealer Inquiries Invited* Program Contributions Solicited 

Highest Royalties Paid 

Multi-Micro Media Corp., P.O. Box 1025, Arvada, Colo. 80001 

MM 




SOMERVILLE. MASS. 02143 



tel (617)547-7053 



DISK ASSEMBLER 

and 
DISK EDITOR 

Both programs read and write disk files; file size not 
limited by memory. Assembler will assemble up to 
ten source files at a time; permits modular pro- 
gramming with programs easily relocated by 
reassembling at the desired address. Editor does 
not use line numbers; it searches for strings. Lines 
may be inserted, deleted and displayed. Large disk 
source files allow programs to be fully commented. 

ASSEMBLER/EDITOR on disk 
with users manual. ..$30 

COMPUTER SYSTEMS DESIGN 

1611 E. Central Wichita, KS 6721 4 

DEALERS INQUIRIES INVITED 



85 



Gary Gaugler 

2276 Beaver Valley Rd. 

Fairbom OH 45324 



Explained: String Interpretations 

parsing techniques for the 6800 



Indexing a command input 
in line for syntax or argu- 
ments (parsing) can be a diffi- 
cult and cumbersome 
task with the 6800 CPU. Of 
the few drawbacks of the 
6800, the lack of a second 
16-bit index register is by far 
the most prominent. Unlike 
the architecturally similar 
6502, which has two 8-bit 
index registers, the 6800 has 
a very powerful 16-bit index- 
ing mode, but for the singular 
index register. Programmers 
approach this limitation in 
many individual ways. Some 
of the approaches are decep- 
tively risky. 

Indexing (indexing is used 
here to describe many types 
of string interpretation: 
tables, user input strings, etc.) 
is most commonly used when 
evaluating a human-entered 
command string for its type, 
syntax and content. This pro- 
cess is, of course, used in 
assemblers, editors, compilers 



and the popular BASICs for 
the SWTPC 6800. The 
SWTPC BASIC and co-resi- 
dent editor/assembler use the 
stack pointer as a pseudo 
index register. This is func- 
tional but catastrophic in the 
event of an external interrupt 
from such sources as a per- 
ipheral service request or 
from a real-time interval 
timer. The problem centers 
on the CPU stack's really 
ceasing to exist since the 
stack pointer (SP) is loaded 
with the address of the table 
or command string to be 
parsed. When an interrupt 
would occur, the micro- 
processor unit (MPU) wants 
to push the register contents 
onto the stack (which it 
does), but the stack actually 
points somewhere in the user 
program. Fig. 1 depicts the 
MPU responding to an inter- 
rupt with a normal stack 
configuration. 

When an interrupt is re- 



ceived, the MPU completes 
execution of the current in- 
struction, then pushes the 
register contents onto the 
stack in the following order: 
conditon code register (CC), 
B register (B), A register (A), 
high byte of the index 
register (X hi), low byte of 
the index register (X lo), 
high byte of the program 
counter (PC hi) and low byte 
of the program counter (PC 
lo). This information is used 
to return to the exact loca- 



tion in the interrupted pro- 
gram after the interrupting 
device has been serviced. The 
address of the instruction 
that would have been exe- 
cuted next if the interrupt 
had not occurred is the PC hi 
and PC lo that was pushed 
onto the stack. It is fatal to 
the program execution if this 
return address is lost. 

Now, let's examine how 
BASIC parses a command 
string. The command string 
(that which is typed on the 



(PROGRAM ~\ 
EXECUTING^ / 



HIGHER 

STACK 

ADDRESSES 

STACK 



INTERRUPT 



INTERRUPT 
RECEIVED 



D 



cpu 

register 

contents 



SP (BEFORE INTERRUPT) 



SP (AFTER INTERRUPT) 



LOWER 

STACK 

A00RESSES 



Fig. 1. Normal 6800 response to an interrupt. 



Program A. Sample listing of normal BASIC parsing method. 



00010 

00020 

00030 1000 

00040 

00050 

00060 

00070 

00080 

00090 

00100 

00110 

00120 

00130 

00140 

00150 1000 BD 2000 

00160 

00170 

00180 

00190 

00200 

00210 

00220 1003 8C 1071 

00230 1006 27 04 

00240 1008 EE 00 



NAM PARSE 
OPT S»N0P 

ORG $1000 

« 

« « 

* PARSE • 

• « 

♦ PARSE POUTINE AS USEO IN BASICf ETC. 

* 

♦ MAIN PROGRAM CALL TO PARSE SUBROUTINE 

JSR PARSE 



• RETURN HERE AFTER PARSING 

• IF (X)=LAST A0DRESS OF LOOK-UP TABLE* THEN 

• KEYBOARD COMMAND CAN'T BE FOUND IN TABLE. 



CPX 
BEQ 
LDX 



#TBLEND END OF TARLF? 

N0TFND YESI BAD COMMAND RECEIVED 

0»X GOT A GOOD COMMAND. GET THE H 



keyboard) must be compared 
against valid commands to 
which BASIC will respond, 
such as LIST, PRINT, eta 
Once the command is vali- 
dated, the address of the 
routine in BASIC that 
handles the desired function 
is loaded into the index 
register. A zero indexed jump 
is executed to go to the de- 
sired handler. Fig. 2 depicts 
the MPU organization when 
performing this function. Pro- 
gram A is a listing of a sample 
routine that performs the 
parsing function in the same 
manner as BASIC. 

The stack pointer (a 16-bit 
register) is used to pull char- 
acters from the keyboard in- 



86 



put buffer area into the ac- 
cumulator for comparison 
with characters in the com- 
mand table. The index 
register is used to place char- 
acters located in the com- 
mand table into the B 
register. The two accumu- 
lators can then be compared 
for a match. During this 
process, no maskable inter- 
rupts will be processed; how- 
ever, a nonmaskable interrupt 
will crash the program since 
the MPU registers will be 
pushed into the keyboard 
character buffer area since 
the stack pointer is pointing 
into that area. When this 
happens, the user command is 
destroyed, having been over- 
written by the register save 
sequence. 

We can now compare this 
with a new approach that still 
uses the stack, but uses it in 
its intended push-down form. 
Suppose that once the 
command from the keyboard 
is received and placed into its 
buffer, we place a duplicate 
of the received command 
onto the stack. We do this by 
pushing characters in the re- 
verse order of entry — last 
character first, first character 
last — then point the index 
register to the command table 
as was done before. If an 
interrupt is received, the 
register contents are pushed 
onto the stack below the key- 
board characters. The char- 
acters are not destroyed by 
the interrupt, and the pro- 
gram return address is intact 
on the stack. This method 
allows fast searching yet does 
not alter the stack function 
or distort the stack operation. 
Program B contains a 
listing of a routine using the 
method described. The 
routine performs the function 
of validating an input com- 
mand that has been placed in 
the keyboard input buffer 
and fetching the 16-bit ad- 
dress of the routine that 
would perform the function 
desired. The routine is pre- 
sented in a basic form and 
can be expanded to accom- 
modate many useful features. 
One important factor to con- 
sider is that once a character 



00250 

00260 

00270 

00260 

00290 

00300 

00310 

00320 

00330 

00340 

00350 

00360 

00370 

00380 

00390 

00400 

00410 

00420 

00430 

00440 

00450 

00460 

00470 

00480 

00490 

00500 

00510 

00520 

00530 

00540 

00550 

00560 

00570 

00580 

00590 

00600 

00610 

00620 

00630 

00640 



100A 6E 00 
100C 



2000 



2000 

2001 
2004 
2007 

200A 
200D 
200E 
200F 
2010 
2012 

201* 
2015 

2017 
2018 
201B 
201D 
201F 
2021 
2022 
2023 



2000 

OF 

BF 1073 

FF 107F 

CE 1082 



BE 
34 
08 
32 
E6 
27 
11 
27 
08 
8C 
27 
E6 
26 
08 
08 
20 



1081 LOOP1 



2025 08 

2026 BE 
2029 01 
202A 0E 
202B 39 
1000 



JMP 

« 

NOTFNO EQU 

•• 

• GO PRINT FR 

« 

ORG 

« 

• PARSE SUBR 

« 

PAPSF EQU 
SEI 
STS 
STX 

LDX 

« 

LOS 

DES 

L00P2 INX 

PUL 

00 LOA 

11 BEO 

CBA 
F7 BEQ 

L00P3 INX 
1071 CPX 

09 BEO 

00 LOA 

F6 BNE 

INX 

INX 

E5 BRA 

GOTIT INX 
1073 BADNUZ LDS 

NOP 
CLI 
RTS 
ORG 



0*X 

ROR MESSA 

$2000 
0UTINE 



ADORESS AND JUMP TO IT 



GE 



SAVSTK 

SAVEX 

#CMDTBL 

FIRST 



A 

B 



OtX 

GOTIT 

L00P2 

#TBLEND 
BADNUZ 
0*X 
LOOP3 



L00P1 



SAVSTK 



DON'T ALLOW MASKABLE INTERRUP 
SAVE THE STACK POINTER 
SAVE X-REG 
1 POINT X TO COMMAND TABLE-1 

(SPX — ADDRESS OF FIRST KBD C 

X POINTS TO CHAR IN CMD TABLE 

(A)=CHAP FROM KBD 

(B)=CHAR IN CMD TABLE 

HAVE A COMPLETE MATCH 

ARE THEY THF SAME? 

YESJTEST NEXT CHARS 

N0;P0INT TO NEXT IN TABLE 

END OF TAPLF? 

YFS 

SEARCH FOR BYT IN TABLE 
SKIP PAST UN-MATCHED HANDLER 1 
ADDRESS IN TABLE 
TRY AGIAN 

POINT X TO HANDLER ADDRESS 
RESTORE STACK POINTER 
ODD VALUE INSTR BEFORE CLI 
ENABLE MASKABLE INTERRUPTS 
RETURN 



$1000 



Program B. Parsing routine that allows register contents to be saved (during interrupt) below the keyboard 
characters. 



00650 
00660 
00670 
00680 
00690 
00700 
00710 
00720 
00730 
00740 
00750 
00760 
00770 
00780 
00790 
00800 
00810 
00820 
00830 
00840 
00850 
00860 
00870 
00880 
00890 
00900 
00910 
00920 
00930 
00940 
00950 
00960 
00970 
00980 



« 

* PARSE2 * 
« « 

« 

* PARSE ROUTINE WHICH PUSHES INPUT BUFFER ON STACK 

« 

* CALLING SEQUENCE IN MAIN PROGRAM 



1000 BD 1075 
1003 BD 100D 



JSR 
JSR 



KEYBRD 
PARSE2 



GFT CMD FROM KEYROAPD 



1006 2B 04 

1008 08 

1009 EE 00 
100B 6E 00 



« 
« 
* RETURN HERE; IF 0»X IS NEG» CMH MOT FOUND 

BMI NOTFND 

IS found; GET HAN0LER ADDRESS 
GET TARGET ADDRESS 

GO THERE 

« 
« 



BMI 


NOTFND 


INX 




LDX 


0»X 


JMP 


OtX 



• PARSE SUBROUTINE 

« 

100D PAPSF2 EOU • 

100D FE 1077 LDX ENDBUF 

1010 BF 1073 STS SAVSTK 

1013 BE 1073 PSHCHR LDS SAVSTK 

1016 A6 00 LDA A 0»X 

1018 36 PSH A 



87 





has been pulled from the 


00990 


1019 


09 






DEX 










stack, it is no longer needed 


01000 


101A 


BC 


1079 




CPX 




FRSTCR 






for comparison to a com- 


01010 


1010 


26 


F7 




RNE 




PSHCHR+3 






mand table character set. 

II 9M 


01020 
01030 


101F 
1021 


A6 
36 


00 




LDA 

PSH 


A 
A 


OtX 






However, if a mismatch 


01040 








• 












occurs, then the same 


01050 








* COMPARE STACKED CHAPS TO CMD TARLE 






characters in the keyboard 


01060 


1022 


CE 


1082 




LDX 




#CMDTRL-1 






character buffer are again 


01070 


1025 


08 




SCAN 


INX 










checked against the command 


01080 
01090 


1026 
1027 


32 

60 


00 




PUL 
TST 


A 


0.X END OF GOOD COMMAND? 






table. If an interrupt occurs 


01100 


1029 


27 


OF 




REQ 




GOTITT YEP 






before a match is found, the 


1 1 1 


102B 


2B 


0D 




BMI 




N0G00D RADI END OF TABLE 






stacked characters are lost. 


01120 


102D 


Al 


00 




CMP 


A 


o»x else; char in tarle? 






To avoid this situation, re- 


01130 
01140 


102F 
1031 


27 
08 


F4 


SCAN1 


REQ 
INX 




SCAN YES. CONTINUE 

NOPE. SKIP OVER UN-MATCHED 


TA 




stack the keyboard characters 


01150 


1032 


60 


00 




TST 




OtX ENTRY. LOOK FOR BYTE AS 


CL 




each time a command table 


01160 


103^ 


26 


FB 




BNE 




SCAN1 






set is mismatched. 


01170 


1036 


08 






INX 










It should be clear by now 


01180 


1037 


08 






INX 










that when using the stack for 


01190 
01200 


1038 


20 


EB 


« 


BPA 




SCAN 






table manipulation and 


01210 




103A 


GOTITT 


EQU 




* 






parsing, it is easy to un- 


01220 








* HAVE 


THE 


VALID COMMAND. •• 






knowingly wipe out a pro- 


01230 








» 












gram. What is needed is a 


01240 


103A 


39 




N0GOOD 


RTS 




CAN»T FIND THE COMMAND. GET 







parsing technique that will 
simulate two independent 








































16-bit index registers. Such a 






















routine is described next. 










Prog 


ram C. 


Double-index parsing routine. 






Initially, set up two 


01250 








« 












double-byte variables called 


01260 








• 












TBLREG and KBDREG. 


01270 








««"»««««<»«•«««««««««« 






TBLREG will be a pseudo- 


01280 








« 






« 






register in memory that will 


01290 
01300 








* PAPSE3 

« 




« 






be the pointer into the look- 


01310 








««»«««««««««««««««««««««»»««««««»«»«»««««««•»««« 






up table. KBDREG will do 


01320 








« 












the same function for the 


01330 








• 












keyboard input buffer. The 


01340 








* DOUBLE PSEUDO REGISTFR PARSE ROUTINE 






goal will be providing variable 
length table entries with a 


01350 
01360 
01370 


103B 


103B 
CE 1083 


• 
PAPSE3 


EQU 
LOX 




• 
#CMDTRL 






corresponding 16-bit target 


01380 


103E 


FF 


107D 




STX 




TARREG 






address. Program C is a listing 


01390 


1041 


FE 


1079 


PARS4 


LOX 




FRSTCR 






of the double-index parsing 


01400 


1044 


FF 


107B 




STX 




KRDREG 






routine. Several entry points 


01410 
01420 


1047 
104A 


FE 
E6 


1070 
00 


PARS5 


LOX 
LOA 


R 


TARREG 
O.X 






are provided for accom- 


01430 


104C 


27 


22 




REQ 




GOTCMD 






modating various functions. 


01440 


104E 


2B 


20 




RMI 




NONO 






Fig. 3 depicts the organiza- 


01450 


1050 


08 






INX 










tion using the double-register 


01460 


1051 


FF 


1070 




STX 




TABREG 






method. This routine incor- 


01470 
01480 


1054 
1057 


FE 
A6 


107R 
00 




LDX 
LDA 


A 


KPDPEG 
OtX 






porates three loops — two 


01490 


1059 


08 






INX 










inner loops and one outer 


01500 


105A 


FF 


107B 




STX 




KBDREG 






loop. The pseudoregisters 


01510 


1050 


11 






CRA 










(KBDREG & TBLREG) must 


01520 


105E 


27 


E7 




BEQ 




PARS5 








01530 


1060 


FE 


1070 




LDX 




TABREG 






constantly be updated before 


01540 


1063 


08 




PAPS6 


INX 










fetching the other, otherwise 


01550 


1064 


E6 


00 




LDA 


P 


OtX 






the current register would be 


01560 


1066 


26 


FB 




RNE 




PARS6 






destroyed. 


01570 


1068 


08 






INX 










Fig. 4 details one complete 


01580 
01590 


1069 
106A 


08 
08 






INX 
INX 










entry in the command table. 


01600 


106B 


FF 


107D 




STX 




TARREG 






The method described allows 


01610 


106E 


20 


01 




RRA 




PARS4 






entries of any length and in- 


01620 








« 












cludes associated flags and 


01630 




1070 


NONO 


EQU 




• 






jump addresses. The process 


01640 
01650 








* PRINT ERROR 

• 


MESSAGE OR EXIT WITH -1 IN ACCUM 






starts by initializing the 


01660 


1070 


39 




GOTCMO 


RTS 










pseudoregisters (FRSTCR is 


01670 








« 












the address of the first non- 


016R0 








• 












blank character in the key- 


1690 
01700 


1071 


0002 


TRLEND 


RMR 




2 






board buffer): TABREG to 


01710 


1073 


0002 


SAVSTK 


RMR 




2 






the first address of the look- 
88 


01720 


1075 


0002 


KEYPPD 


RMR 




2 





01730 


1077 0002 


01740 


1079 0002 


01750 


107B 0002 


01760 


107D 0002 


01770 


107F 0002 


01780 


1081 0002 


01790 




01800 




01810 




01820 




01830 


1083 


01840 


10B3 4C 




1084 49 




1085 53 




1086 54 


tnb5t> 


\t>fcl $tt 


01860 


1088 12 




1089 34 


01870 




01880 


108A 50 




108B 52 




108C 49 


01890 


108D 00 


01900 


108E 56 




108F 78 


01910 




01920 




NOTFNC 


100C 


PARSE 


2000 


LOOP1 


200A 


LOOP2 


200E 


LOOP3 


2017 


GOTIT 


2025 


BADNU2 


! 2026 


PARSE2 


! 100D 


PSHCHF 


1 1013 


SCAN 


1025 


SCANl 


1031 


GOTIT7 


103A 


NOGOOC 


i 103A 


PARSE2 


1 103H 


PARS4 


1041 


PARS5 


1047 


PAPS6 


1063 


HOW 


1070 


GOTCMD 1070 


THLEND 1071 


SAVSTK 1073 


KEYPRD 1075 


ENDPUF 1077 


FRSTCP 1079 


KPnPEG 107B 


TAHPEG 107D 


SAVEX 


107F 


FIRST 


1081 


CMDTPL 1083 



A-REG 

B-REG 

CC-REG 



ENDPUF RMB 2 

FRSTCR RMB 2 

KBDPFG PMP 2 

TAPPEG RMB 2 

SAVFX RMP 2 

FIRST RMB 2 

♦ COMMAND LOOK-UP TABLE 

« 

CMDTPL EOU * 

FCC /LIST/ 



X 
SP 



FCB 
FCR 



FCC 



FCB 
FCB 



END 



$12»$34 ADDRESS FOR LIST PROCESSOR 



/PRI/ 



$56»$78 ADDRESS FOR PRINT PROCESSCR 



MAIN MEMORY 





A-REG 

B-REG 

CC-REG 












X 




SP 





BASIC COMMAND TABLE 



KEYBOARD INPUT BUFFER 



Fig. 2. Normal parsing operation. 



MAIN MEMORY 



COMMAND TABLE 



SCRATCHPAD OR 
MAIN MEMORY 




TBLREG 



KEYBOARD INPUT BUFFER 



up table and KBDREG to the 
address of the first non-blank 
character in the keyboard 
command buffer. 

Loop 1 fetches two char- 
acters, one character into the 
A register from the keyboard 
buffer and one character into 
the B register from the com- 
mand look-up table. The 
registers are tested for 
equality, a match between 
the two characters. On 
equality, a new pair is fetched 
and the process repeated until 
an exit condition occurs. Exit 
occurs if the contents of the 
B register is a minus one, 
indicating the end of the 
look-up table was reached be- 
fore a match was made, or 
when the B register is zero, 
indicating a match is found. 
If no match is made in a table 
entry and the end of the table 
had not been reached, Loop 2 
skips over the bytes asso- 
ciated with the no-match 
table entry. On exiting Loop 
2, TABREG is updated to 
point to the next table entry. 

This technique supports 
any-length table entry since 
the zero byte flags the end of 
a table entry. This method of 
parsing can be modified or 
expanded to handle most any 
type of command or string 
interpretation. Furthermore, 
interrupts will not alter the 
normal MPU interrupt pro- 
cess or return. ■ 



CHAR I 



CHAR 2 



COMMAND TABLE 



CHAR n 



aoh 



oal 



NEXT ENTRY 



Fig. 3. Double register parsing operation (see Program C). 



Fig. 4. Command Table entry. 



89 



Incredizing 



Philip Tubb 

ALF Products, Inc. 

128 S. Taft 

Lake wood CO 80228 



Incredizing is an exciting 
game for 8080 systems that 
uses a Processor Technology 
VDM-1 board, and fits in 3 to 



4K bytes of memory. An 
ASCII keyboard is used to 
play the game. The game is 
written for two players, but 



can also be played by one. 
The name is, of course, a 
mixture of "incredible" and 
"amazing," and the program 






Illustration of how game appears on the screen. 



90 



amazing, incredible game 



for 8080 systems! 



i 



\s a second version of the 
one-player original program, 
Zing. 

Here's how to play Incre- 
asing. First, two players 
agree on the number of 
rounds to be played. The 
program is run (at address 
020'000) and the first player 
presses return when he is 
ready to start. The screen is 
cleared, and a single asterisk 
(*) is placed on the screen. 
The zinger appears moving 
somewhere on the screen; it is 
a bright blob (a reverse video 
space). 

The player tries to make 
the zinger hit the asterisk 
while scoring the least 
number of points possible. 
This is done by pressing 
various keys. For example, 
pressing a slash (/) puts a 
slash on the screen; and then 
the zinger bounces off the 
slash. If it was going down, it 
goes left; up changes to right; 
if it was going left it goes 
down; and right changes to 
up. There are numerous other 
characters used to direct the 
zinger. 

The speed at which the 
zinger moves is controlled by 
the switch register (those 
without switch registers will 
have to arrange other inputs), 
and 020 octal is a reasonable 



Display Alternate 



/ 


? 


\ 


1 


! 


1 


» 


ii 





o 


( 


9 


) 





< 


9 


> 


a 


A 


6 


V 


V 



(Approach:) Left 


Up 


Right 


Down (Points) On 


Of1 


D 


R 


U 


L 


20 


40 


U 


L 


D 


R 


20 


40 


UD 


D 


UD 


U 


10 


30 


R 


LR 


L 


LR 


10 


30 


UDLR 


UDLR 


UDLR 


UDLR 


5 


25 


hyp 


hyp 


hyp 


hyp 


2 


10 


R 


L 


hyp 


L 


4 


8 


hyp 


R 


L 


R 


4 


8 


R 


L 


UD 


L 


15 


30 


UD 


R 


L 


R 


15 


30 


U 


D 


U 


LR 


15 


30 


D 


LR 


D 


U 


15 


30 



Table 1. Character table. 











0010 


020 000 








0020 




6 ! 




000 


0030 


■03 


373 






00 40 


020 '004 


4 :l 





000 




007 


333 






0060 


020 '01 1 


043 






0070 


020' 012 


037 






00 no 


•1 3 


322 


000 


020 


0090 


I 1 6 


042 




*2 


0.1.00 


020 '021 


04 3 






1 1 


"022 


042 


•1 £5 


:■ ••) 


0120 


2 


33 3 


■i 7 7 




0130 




34^ 


1 




0140 


020 031 


3? 6 






0150 


020 033 


3 1 2 




20 


0160 


r. 2 ' ( 


376 


1 5 




0162 


020 '040 


302 


000 


020 


1 6 4 


020 '0 43 








01 


020 '043 








01 80 


020 04 3 








0190 


•'043 








0200 


090 ' 044 


x 'j ■■>. 


3 1. 




0210 


020 '046 








7> '"> >"* 

\/ *.. A.. W 


02 C 


041 




I -1 A 


0230 


020 ■ 053 


066 






02 40 


.'.■->, \ ■• 0*55 


A 3 






0250 


020 '05 6 


■ 






0260 


020 057 


302 


053 


2 


0270 


020 062 


07 6 


052 




0280 


020 06 4 


062 


04 


I 1. 6 


0290 



Program listing. 

SP EQU M 

PSW EQU M 

START LXI SPrO SET STACK POINTER . 

E I FN A ft I. E I N T E RRU P T S F D R C L C K . 
LXI HvO SET HI 

START! IN STATUS WAIT FOR CHARACTER, 
I NX H COUNT WITH HI.. WHILE WAITING, 
RAR 

JNC START 

SHI H RNDl SET 4 BYTE RANDOM SEED. 
I NX H GUARANTEE NON-0 WITH I NX. 
SHI..D RND2 

IN DATA READ CHARACTER* 
AN I 127 

CPI 'Z' IS IT Z'! 1 

JZ PEG IN YESv LEAVE BOARD ALONE. 
CPI N ■-■• 64 
JNZ START MUST BE RETURN. 

* INITIALIZE "BOARD" BY SETTING 

* SCREEN TO ALL SPACES. THEN PUT 

* AN "*" IN THE CENTER. 
START3 XRA A 

OUT 200 SET SCROLL PORT. 
MVI AvODOH SET END POINT. 
LXI HrOCCOOH SET START POINT. 
START 2 MM I Mv ' ' ERASE 
I NX H 
CMP H 

JNZ ST ART 2 REPEAT UNTIL DONE. 
MVI A- '* WRITE THE *< 
ST A 0CE20H 



91 



020 '067 
020 '067 

020 072 
020 '075 
020 '1.00 
020 '103 
020 '1.06 
020' 1.1.1 
020' 11.1. 
020' 111 
020" 111 
020 '113 
020 ' 114 
020' 117 
020'. 1.20 
020-121 
020 '122 
020' 123 
020' .1.27 
020 '13.1. 
020' 1.34 
020 '137 
020-141 
020 '142 
020 143 
020 '146 
020'147 
020 '150 
020 '1.51 
020' 152 
020 '154 
020 '15 6 
020 '16.1. 
020 '164 
020 165 
020 '166 
020 1.71 
020- 172 
020 '1.73 
020 '174 
020 '1.74 
020 '1.74 
020 '175 
020'177 
020 ' 200 

020 '202 
020 205 

W *.. M a.. \v ../ 

020 '205 
020 205 
020'205 

W A.. \. A„ \J V.. 1 

020 ■ 207 
020 '2 1.0 
020 '212 
020'21. 3 
020 '214 
020-215 
020-216 

020 '221. 
O ~> Ci ' "> 9 '") 

020'225 
020'227 
020 '230 
020 '233 
020 '236 
020-237 
020 '240 
020'243 
020 '243 
020'243 
020-243 
020 '244 
020'246 
020'247 
020 '251 
020 '254 
020'257 
020 '262 

020 '263 
020'266 
020 '267 
020 '272 
020'272 
020 '274 
020'275 
020 '275 
020*276 
020 '300 
020-30.1. 
020 '302 
020 '304 



000 000 
167 022 
171 022 
173 022 
07 7 315 
175 022 



010 
117 022 



041 
42 
042 
042 
041 
042 



006 
315 
175 

027 
157 

005 

302 

346 

376 

312 

315 

076 

027 

147 

315 117 022 

174 

027 
147 

176 
346 
376 
31.2 
31.5 
027 
107 
315 
170 
027 
107 



113 020 

077 

077 

111 020 

117 022 

063 



177 

052 

111 020 

117 022 



117 022 



.1.76 
366 
.1.67 

376 

3 1 2 



200 



9 ■; '•> 

*.. \.f A.. 



162 021 



333 
137 

026 

023 

353 

170 

037 
.. ,.) ,., 

\-.' A.. A. 

051 

042 
333 
037 
332 
052 
257 
264 
362 



032 
346 
022 
376 
3 1 2 
041 

042 
1 1 7 

3 1 5 
267 
302 

076 

022 

170 

346 

207 
1.57 
046 
325 



377 
000 



222 020 

.1.03 000 
176 

270 021 

1.03 000 



225 020 



177 

040 

275 020 
346 020 
341 020 

327 020 
064 021 
040 



003 



0300 

0310 

0320 

0330 

0340 

0350 

0360 

0370 

0380 

0390 

0400 

0410 

0420 

0430 

0440 

0450 

0460 

0470 

0490 

0490 

0500 

05.1.0 

0520 

0530 

0540 

0550 

0560 

0570 

0580 

0590 

0600 

0610 

0620 

0630 

0640 

0650 

0660 

06 70 

0680 

0690 

0700 

0710 

0720 

0730 

0732 

0734 

0740 

0750 

0760 

0770 

0780 

0790 

0800 

0810 

0820 

0830 

0840 

0850 

0860 

0870 

0880 

0890 

0900 

0910 

0920 

0930 

0940 

0950 

0960 

0970 

0980 

0990 

1020 

1030 

1040 



SCORES FOR 



* START OF GAME. 
BEGIN LXI HfO ZERO 

SHLD PL1 PLAYER 1, 

SHLD PL 2 PLAYER 2, 

SHLD PLSC CURRENT PLAYER* 

LXI H,0CD3FH SET CURRENT SCORE 

SHLD SCPT POINTER. 

* BEGIN PLAY BY SETTING ZINGER AT 

* A "RANDOM" PLACE* SET B TO A 

* RANDOM DIRECTION. 
PLAY MOI By 8 SET COUNT. 

PLAY1 CALL RND GET RANDOM BIT IN CARRY. 
MOO AfL 

RAL ROTATE INTO L . 
MOO LyA 
DCR B 

JNZ PL.AY1 REPEAT FOR 8 BITS. 
AN I 63 IN SCORE AREA? 
CPI 63 

JZ PLAY TRY AGAIN IF SO. 
CALL RND 
MO I Ay 5 



RAL 

MOO 

CALL 

MOO 

RAL 

MOO 

MOO 

ANI 

CPI 

JZ 



SET A TO CC HEX / 4. 
SHIFT IN RANDOM BIT. 
HyA SAOE. 

RND 
AyH 

SHIFT IN ONE MORE. 
H?A COMPLETE RANDOM ADDRESS 
IS IT THE ADDRESS 
OF THE *? 



IN HL. 



AyM 

127 

'* ' 

PLAY 



CALL 

RAL 

MOO 

CALL 

MOO 

RAL 

MOO 



RND 

By A 

RND 
AyB 

ByA 



IF SOy 
SET 2 



TRY AGAIN. 
BIT DIRECTION 



IN B. 



* LIGHT UP ZINGER BY SETTING MSB 

* 7) FOR REOERSE 01 DEO. 
FLASH MOO AyM 

OR I 1.28 
MOO MfA 
CPI '*'+128 
JZ HIT BRANCH 



(BIT 



IF * HIT 
A WHILE. 
COMMANDS 



WATCH KEYBOARD 



* NOW WAIT FOR 

* FOR POSSIBLE 

* "CLOCK" IS ADDRESS OF 2 BYTE NUMBER 

* WHICH IS DECREMENTED AT REGULAR 

* INTEROALS BY AN INTERRUPT ROUTINE. 
IN 255 READ SWITCHES. 
MOO EyA 

MO I DrO USE FOR WAIT COUNTDOWN. 
I NX D ELIMINATE POSSIBILITY. 
XCHG 

MOO AyB READ DIRECTION. 

RAR 

JNC WAIT1 

DAD H DOUBLE WAIT IF UP OR DOWN. 
WAIT!. SHLD CLOCK SET COUNT DOWN. 
WAIT2 IN STATUS KEY PRESSED? 

RAR 

JC KEY JUMP IF SO. 
WAIT3 LHLD CLOCK 

XRA A 

ORA H COUNT REACHED 

JP WAIT2 JUMP IF NOT 

* TIME TO MOOE ZINGER 



1 YET? 



READ THE 



000 



1050 
1.060 
1070 
1.080 
.1.090 
1100 
1 1. 1. 
1120 
1130 
I I 40 
1150 
1 1.60 
1170 
11.80 
1.1.90 
1200 
1 2 1 



* CHARACTER IT'S ON AND ACT 

* ACCORDINGLY. 
LDAX D CLEAR MSB TO END REOERSE OIDEO. 
ANI 127 
STAX D 
CPI ' ' IS IT SPACE? 

JZ N0UE3 JUMP IF SO. 
LXI Hy NORMAL 
SHLD PLACE-fl 
MOO CyA 

CALL SEARCH LOOK UP CHARACTER. 

ORA A 

JNZ NEW .JUMP IF FOUND. 
« ILLEGAL CHARACTER ON SCREEN. 
M00E2 MOI Ay' ' REPLACE WITH A 

STAX D SPACE. 

* SPACE y CONTINUE NORMAL MOOEMENT. 
MOOE 3 MOO AyB LOAD DIRECTION. 

ANI 3 MASK TO 2 BITS. 
ADD A DOUBLE IT. 
MOO LrA 
MOI HrO 
PUSH D 



starting speed (especially con- 
sidering that is also the 
starting address). In addition 
to pressing keys to put char- 
acters on the screen players 
can use a space to remove 
them. 

The amount of points 
scored is different for each 
character, as is the amount of 
points scored by removing 
the character (also, the score 
for putting a character on the 
screen is not the same as for 
taking it off). 

Once the * is hit, it is the 
other player's turn. The char- 
acters put on the screen by 
the first player remain. After 
the second player hits the *, 
that ends the first round. 
After all rounds are com- 
pleted, the player with the 
lower score wins. - 

According to our experi- 
ments, incredizing is played 
at two levels. At first, players 
concentrate on simply hitting 
the . Later, they begin calcu- 
lating not just how to hit the 
*, but the best way to hit it. 
They consider how many 
points each character takes 
and what sort of pattern 
they're leaving on the screen. 
You can set up patterns that 
lead to the *, so you can just 
move the zinger anywhere in 
the pattern and let it thread 
down to the *. You can 
surround the * with deflec- 
tors to make it more difficult 
for the other player. Very 
complex strategies are 
possible. 

Program Description 

Line 0030 in the program 
sets the stack pointer. We 
have wire-wrapped a small 
amount of memory at the 
highest addresses available to 
serve as a convenient stack 
location, and, therefore, we 
set the stack pointer initially 
to zero. You will probably 
have to change this to an area 
where you have RAM. The 
program is shown assembled 
at 020'000 (split octal, equiv- 
alent to 1000 hex) but could 
be assembled about any- 
where. 

The Processor Technology 
board is assumed to have the 



92 



standard addresses, a starting 
RAM address of CCOO hex 
and an output port number 
of C8 hex. The keyboard is 
assumed to use the least sig- 
nificant bit of its status word 
as an input ready bit, 
meaning not ready, and 1 
meaning ready. The addresses 
of the status and data ports 
are set to 126 and 127 by 
EQUs at lines 3840 and 3850. 
The WAIT3 routine (lines 
0920 through 0950) checks a 
two-byte word in RAM, 
which is supposed to be auto- 
matically decremented by an 
interrupt routine 256 times 
per second (details on this are 
given later). This can be re- 
placed by a timing loop if 
desired. In making reverse 
video spaces, it is assumed 
that the switches on the 
VDM-1 are set with 2, 3, 5 
and 6 on, and all others off. 

If the zinger is currently at 
a character, and a new char- 
acter is pressed, the player is 
charged both for removing 
the old character and placing 
the new one. The scores are 
shown in decimal at the far 
right of the screen with 
player one's score at the top 
and player two's score at the 
bottom. The score is not 
shown when it is zero. 

At the start of the game, 
Incredizing waits for either of 
two input characters. Return 
initializes the screen and be- 
gins play. Capital Z starts the 
game without initializing the 
screen. Each time the is hit, 
the new player indicates he is 
ready by pressing return. If 
he presses capital Z, the 
screen is cleared and the game 
starts over. 

The random number gen- 
erator generates a single-bit 
number. This is compatible 
with practically any hardware 
random number generator, 
and the random numbers 
actually used are made by 
calling the routine as many 
times as needed. 

The character table, which 
begins at line 6000, is easily 
modified to create your own 
special characters, accom- 
modate different keyboards 
or modify existing special 



020 '305 021 317 < 


)20 


020' 310 031 






020' 311 1.36 






020'312 043 






020 '313 126 






020 '3 1.4 353 






020 ' 313 321 






020 '316 351 






020 '317 






020 '317 360 1 


[)20 




020 '321 013 I 


021 




020 '323 375 I 


020 




020 '325 040 


021 




020'327 






020 '327 






020 '327 






020 '327 






020 '327 






020 '327 04 1 


177 


022 


020 '332 176 






020 '333 267 






020 '334 31.0 






020'335 271 






020 '336 043 






020 '337 310 






020 '340 303 


34 6 


020 


020'343 1.76 






020 344 271 






020 '345 310 






020 '346 043 






020 '3 47 043 






350 43 






020 '35 J. 043 






20 '352 043 






020 353 303 


.... ._ ,.j 

\..' •*.} Am 


020 


020 356 006 


000 




'360 






020'360 173 






•■ >0 3*1 3 46 


077 




020 '363 31 


373 


020 


020-366 033 






020 '367 353 






020 '370 303 


174 


020 


373 006 


002 




>0'375 






020-375 173 






020 '376 346 


077 




021. -000 3 76 


76 




021.-002 312 


356 


020 


021 '005 023 






021 '006 303 


367 


020 


021 '01.1. 006 


001. 




021. '01.3 






021.-01.3 i: 






021 014 37 6 


314 




021-016 312 


030 


021. 


021 '021 41. 


300 


:*>?? 


021. -024 031 






02 1 025 303 


1 7 4 


020 


021.-030 1.73 






021 '031 346 


300 




021 033 302 


021. 


021. 


021 '036 006 


003 




»J '040 






021. 040 172 






021 '041 376 


3 I. 7 




021 '043 302 


056 


021 


02 l.'046 1.73 






021. '04 7 3 46 


300 




021.-051 376 


300 




021 '053 312 


1 1 


021. 


021 '056 041 


1.00 


000 


021. '061. 303 


024 


021 


021 064 






021 '064 43 






I '065 043 






021 '066 04 3 






021 '067 170 






021 '070 037 






021-071. 037 






021 '072 322 


076 


02.1 


021'075 043 






021.-076 027 






021.-077 1.76 






021 '100 332 


1.07 


021 


021 '103 037 






021. '104 037 






021 105 037 






021 '106 037 






021 ' 107 3 46 


1 7 




021 - 1. 1.1 






021 ' 111 






021 '11 1 







1220 
1230 
1240 

1.250 

1.260 

1.270 

1280 

1290 

1.300 

13.1.0 

1320 

1330 

1.340 

1350 

1360 

1370 

1380 

1390 

1400 

1. 4 1. 

14 20 

1430 

1.4 40 

1450 

1.460 

1470 

1480 

1490 

1500 

1 5 1 

1.520 

1530 

1.540 

1.550 

1.560 

1.565 

1570 

1580 

1590 

1.600 

1 6 1. 

1.620 

1630 

1.640 

1650 

1.660 

1670 

1680 

I 690 

I 700 

1. 7 1 

1720 

1.730 

1740 

1.750 

1760 

1.7 70 

1780 

1.790 

1800 

i a i o 

1820 

1.830 

1840 

1.850 
1870 

1880 

1.890 

1.900 

1 9 1. 

1.920 

1.930 

1940 

1.950 

1.960 

1.970 

1.980 

1.990 

2000 

2010 

2020 

2030 

2040 

2050 

2060 

2070 

2080 

2090 

21.00 

2 1 1 

2120 

2130 

2.1.40 



Df BRANCH Ann BRANCH TABLE ADDRESS 

D 

EtM REAIi ADDRESS FROM TABLE. 

H 

n*M 



LXT 
DAD 
NOV 
I NX 

MOV 
XCHG 

POP D 

PCHL BRANCH. 
* BRANCH TABLE 
I.1W LEFT 



FOR ABOVE ROUTINE. 



BRANCH 
DW UP 
DU RIGHT 
DU DOWN 

* ROUTINE TO SEARCH 

* NORMAL SEARCH OR 

* SHLD PLACE+1. PUT 

* ROUTINE RETURNS A 

* SETS HL TO POINT 



TABLE. LXI HrNORMAL FOR 
FOR INPUT SEARCHf THEN 
TO BE FOUND IN C. 
AS IF NOT FOUND, ELSE WISE IT 
TO 2ND BYTE OF ENTRY. 
-R. 



CHARACTER 
XI HrBOTH 
CHARACTER 



SEARCH LXI Hr TABLE SET POINT EF 
SEAR1 MOV ArM 

OR A A 

RZ RETURN ON END MARKER. 

CMP C CHARACTER FOUND? 

I NX H 

RZ RETURN IF SO. 
PLACE JMP NORMAL (SOMETIMES IS IMP BOTH) 
BOTH MOV ArM 

CMP C CHECK INPUT CHARACTER. 

RZ RETURN ON MATCH. 



NORMAL 

I NX H 

I NX 

I NX 

I NX 

JMP 
RIOHTX 
* MOVE 



TO RIGHT IF SO 



t>S 



IN HL. 



I NX H 

H 

H 

H POINT TO NEXT ENTRY. 

SEAR1 CONTINUE SEARCH. 

MVI BrO CHANGE DIRECTION. 
LEFT ROUTINE. 
LEFT MOV ArE AT LEFT EDGE? 
AN I 6 A 

JZ I..EFTX CHANGE 
DCX D MOVE LEFT. 
CONT XCHG PUT NEW ADDRES 

JMP FLASH CONTINUE. 
LEFTX MVI Br 2 CHANGE HI RECTI ON. 

* MOVE RIGHT ROUTINE 

RIGHT MOV A ? E AT RIGHT EDGE 

AN I 63 (EXCLUDING SCORE AREA)? 

CRT. 62 

JZ RIOHTX CHANGE TO 

I NX D MOVE RIGHT. 

JMP CONT CONTINUE. 
DOMNX MVI Brl CHANGE 

* MOVE UP ROUTINE. 
UP MOV A?D AT TOP? 

CPI OCCH 

JZ UP 2 JUMP IF MAYBE, 
UPI. LXI Hv-64 MOVE UP. 
C0NT1 DAD Ii 

JMP FLASH CONTINUE. 
UP2 MOV ArE AT TOP? 

AN I 192 

JNZ UPI JUMP IF NOT. 

MVI Br 3 CHANGE DIRECTION* 

* MOVE DOWN ROUTINE, 
IJOWN MOV Aril AT BOTTOM'? 

OCFH 

BOWNl JUMP IF NOT. 

ArE AT BOTTOM? 

1.92 



LEFT IF SO 



DIRECTION. 



CPI 

JNZ 

MOV 

ANI 

CPI 192 

JZ BOUNX 
D0UN1 LXI 

JMP CONT 
* PROCESS 
NEW INX H 

I NX H 



JUMP IF SO. 
Hr64 MOVE DOWN. 

CONTINUE. 
NEW DIRECTION CHARACTERS. 
POINT TO FIRST HI RECTI ON. 



INX 
MOV 
RAR 
EAR 
JNC 
INX 

NEW1 
MOV 
JC 
EAR 
RAR 
RAR 
RAR 

NEW2 

* 
* 
* 



H 
ArB 



LOAD CURRENT DIRECTION. 



SKIP BYTE IF RIGHT OR DOWN. 



NEW1 
H 

RAL 
ArM 
NEW2 
USE LEFT HALF IF LEFT OR RIGHT. 



15 



ANI 
BITS 3 
-ACCEPTABI 
BIT 3 FOR 



MASK TO 4 BITS. 
THROUGH NOW CONTAIN 

E NEW DIRECTION" BITS! 
DOWNr 2 FOR RIGHT r 1 



93 



021 '111 

021 Mil 

021 '111 

021 '1.1.1 

021 '111 

021 '111 312 111 020 

021 '114 117 

021 '115 315 117 022 

021 '120 027 

021 '121 147 

021 '122 313 117 022 

021 '123 174 

021 '126 027 

021'127 346 003 

021 '131 J 47 

02.1 132 044 

021 '133 171 

021 '134 006 377 

021 '136 267 

021 '137 322 144 021 

02:l.'142 366 010 

021 '144 037 

021 '145 004 

021 '146 045 

021 '147 302 137 021 

021 '152 332 275 020 

021 '155 004 

021 'I 56 037 

021 '157 303 152 021. 

021 '162 

021 '162 

021 '162 333 177 

021 '164 353 

021 '165 072 176 022 

021'170 376 315 

021 '172 052 173 022 

021'175 312 251 021 

021 '200 042 171 022 

021 '203 052 167 022 

021 '206 042 173 022 

021 '211 041 077 315 

021-214 042 175 022 

021 '217 333 J 76 

021 '221 037 

021'222 322 21.7 02 1 

021-225 333 177 

021'227 346 177 
021 '231 376 132 

021 '233 312 043 020 

021 '236 376 015 

021 '240 302 217 02.1. 

021 '243 076 052 

021 '245 022 

021 246 303 1] I. 020 

021 '251 042 1.67 022 

021 '254 052 171 022 

021 '257 042 173 022 

021 '262 041 3 77 31.7 

021 '265 303 214 021 

021 '270 

021 '270 333 177 

021 272 346 177 

021 274 041 301 02 1. 

021 '277 376 040 

021 '30.1. 3 12 322 021 

021 '304 117 

021 '305 041 343 020 

021 '310 042 341 020 

021 '313 313 327 020 

021'316 267 

021 '31.7 312 233 020 

021 '322 345 

021 '323 032 

021 '324 346 177 

021 '326 117 

021 '32 7 041 3 46 020 

021 '332 042 3 41 020 

021 '335 315 327 020 

021 '340 267 

021 '341 312 362 021 

021 '344 

021 '344 

021 '344 

021 '344 043 

021 '343 043 

021 '346 305 

021 '347 116 

021 '350 006 000 

021 '352 052 173 022 

021 '355 Oil 

021 '356 301 

021 '357 042 173 022 

02.1 '362 

94 



2150 
2160 
2170 
21 BO 
2190 
2200 
2210 

2230 

2240 

2250 

2260 

2270 

2280 

2290 
'•> ' ) g '•> 

2300 

2310 

2312 

2320 
'•> -ni 

*.- W A- 0m 

2324 
2330 
2340 
2350 
2360 
2370 
2380 
2390 
2400 
2410 
2420 

2430 
2440 
2450 
2460 
2470 
2480 
2490 
2500 
251.0 



IF HYPERSPACE. 

IN C. 

2 BIT RANDOM NUMBER 



* FOR UP, AND BIT FOR LEFT, IF A 

* BIT IS 1, THAT DIRECTION IS ALLOWFDf 

* IF IT IS NOT, ALL O'S (NO ALLOUED 

* DIRECTIONS) INDICATES A HYPERSPACE 

* JUMP. 

J 7 PLAY JUMP 

MOO C»A SAOE 

CALL RND PUT 

RAL IN H, 

MOO H,A 

CALL RND 

MOO AfH 

RAL 

ANI 

MOO 

INR 

MOO 

MOI 

OR A 
NEW3 

OR I 
NEWX 

INR 

DCR 

JNZ 
NEW4 

INR 

RAR 

JMP 



3 
Hf A 

H 
ArC 



PREPARE FOR SHIFTS, 



B,255 



2320 

2530 

2540 

2570 

2580 

2590 

2600 

2602 

2604 

2606 

2608 

2610 

2620 

2630 

2640 

2650 

2660 

2670 

2680 

2690 

2692 

2694 

2696 

2700 

2710 

2720 

2730 

2740 

2750 

2760 

2770 

2775 

2780 

2790 

2800 

2810 

2820 

2830 

2840 

2850 

2860 

2870 

2880 

2885 

2890 

2900 

2910 

2920 

2925 

2930 

2940 



A CLEAR CARRY. 

JNC NEWX WRAP CARRY INTO BTT 3, 

8 

RAR 

B KEEP TRACK OF DIRECTION, 
H 

NEW3 DO A RANDOM # OF TIMES, 

JC M00E3 GO MOOE IF NEW 

B DIRECTION IS LEGAL, ELSE 

TRY NEXT BIT. 

NEW4 

* TARGET HIT. WAIT FOR KEY PRESSED AND 

* SWITCH PLAYERS. 

HIT IN DATA EAT POSSIBLE PREOIOUS 
XCHG ADDRESS OF * IN DE ♦ 
LDA SCPT+1 LOAD SCORE POINTER. 
CPI OCDH 1ST PLAYER? 
LHLD PLSC 

JZ HIT4 JUMP IF SO. 
SHLD PL2 2NDr STORE SCORE. 
LHLD PL1 STORE OTHER PLAYER'S. 
SHI. D PLSC 
LXI H,0CD3FH SET NEW SCORE POINTER. 

SHLD 3CPT 

IN STATUS WAIT FOR INPUT, 



CHAR. 



HIT2 

HIT 3 

RAR 

JNC HIT3 

IN DATA 

ANI 127 

CPI 'Z' A 

JZ START3 

CPI 'M'-64 

JNZ HIT3 (MUST 

MOI Ar '* 

ST AX D 

JMP PLAY 
HIT4 SHLD 

LHLD PL 2 



Z? 
IF 



SOv NEW GAME. 



BE RETURN 
RESET TARGET. 



ELSE CONTINUE. 
PL1 STORE SCORE. 
STORE OTHER PLAYER'S. 



POINTER, 



FAKE SPACE, ) 



SHLD PLSC 

LXI HfOCFFFH SET SCORE 

JMP HIT2 CONTINUE, 

* PROCESS KEY PRESSED. 
KEY IN DATA READ KEY, 

ANI 127 KILL PARITY, 

I. XI H>KEY3 + 2 (POINT TO 
KEY3 CPI ' ' 

JZ KEY 2 JUMP IF SPACE, 

MOO C,A PUT IN C FOR SEARCH, 

LXI HrBOTH 

SHLD PLACE+1 

CALL SEARCH LOOK FOR CHARACTER, 

ORA A 

JZ WAIT3 JUMP IF NOT FOUND, 
KEY2 PUSH H SAOE POINTER. 

LDAX D LOAD DISPLAY CHARACTER. 

ANI 127 

MOO C»A PUT IN C FOR SEARCH, 

LXI Hr NORMAL 

SHLD PLACE+1 

CALL SEARCH LOOK FOR IT. 

ORA A 

JZ KEY1 JUMP IF NOT FOUND. 

* VALID KEY PRESSED AND OALID CHAR. 

* IS ON SCREEN, REMOOE SCREEN CHAR. 

* AND RACK UP THE POINTS, 
I NX H 

POINTS, 



I NX H POINT TO 
PUSH B 
MOO CM 
MOI B,0 
LHLD PLSC 
DAD B 
POP B 
SHLD PLSC 
* PROCESS OALID KEY. 



characters. The table is ar- 
ranged for the IBM keyboard 
rather than the ANSI stan- 
dard keyboard because we are 
using a Dec-writer II for in- 
put. The character table is 
described below. 

The interrupt routine, 
which begins at line 9000, 
simply decrements the two- 
byte number stored at 
CLOCK, which follows the 
routine. It is assumed that 
RST 7 will be used to call the 
routine. 

The Character Table 

The character table has 
one entry for each special 
character. It ends with an end 
marker, which consists of a 
single zero. Each special char- 
acter is defined and the 
possible movements for it are 
specified. For each approach 
direction (up, down, left, and 
right) the possible new direc- 
tions are specified. Any com- 
bination of up, down, left 
and/or right may be specified, 
and the new direction will be 
picked at random from the 
possible legal directions. If no 
new directions are allowed, 
then the zinger goes into 
hyperspace; it emerges at a 
random place on the screen 
moving in a random direc- 
tion. Each character entry is 
as follows: 

1. The first byte indicates 
the character that will be 
displayed on the screen. It is 
also one of two acceptable 
input characters. That is, if 
either it or the other accept- 
able input character is typed 
in, the character defined in 
the first byte will be dis- 
played. 

2. The second byte indi- 
cates the other acceptable in- 
put character. This is nor- 
mally the display character 
either shifted or not shifted. 
This allows the player to ig- 
nore the shift key when 
playing. Both characters 
should have parity zero (deci- 
mal values less than 128). 

3. The third byte indicates 
the number of points scored 
when a player puts the char- 
acter on the screen. 

4. The fourth byte indi- 



cates the number of points 
scored when a player takes 
the character off the screen. 

5. The fifth byte indicates 
the new movement when the 
approach direction was either 
left or up. 

6. The sixth byte indicates 
the new movement when the 
approach direction was either 
right or down. 

For the fifth and sixth 
bytes, the most significant 
four bits of the entry are used 
for left or right approach 
directions, and the least sig- 
nificant four are for approach 
directions of up or down. For 
each four-bit part, a bit 
should be 1 to allow the 
direction, or to disallow it, 
and the directions are (from 
most significant bit to least 
significant): down, right, up 
and left. 

Current Zing Characters 

In Table 1, the first char- 
acter is the character dis- 
played on the screen. The 
first and second characters 
are acceptable inputs to dis- 
play the first character. 
Under the left, up, right and 
down columns, the possible 
new directions that may 
occur when the character is 
hit while going in the 
approach direction are given 
as U for up, D for down, L 
for left, R for right and hyp 
for hyperspace. Under the on 
and off columns, the point 
values are given. 

Interrupts and Timing 

Fig. 1 shows the circuit for 
a timer that can easily be 
wire-wrapped for use with the 
Altair bus. It consists of an 
NE555 timer chip, a 7474 or 
74LS74 flip-flop (one half of 
which is used to provide a 
complimentary output), two 
fixed resistors, two capacitors 
and one variable resistor 
(trimmer). The output of pin 
3 of the NE555 is adjusted to 
approximately 256 hertz by 
adjusting the variable resistor 
the actual frequency is not 
very important as it will only 
affect the speed of the zinger. 

At each cloc k puls e from 
the NE555, the PINT line of 



021 '362 
02:1. '363 
02:1 '364 
021' 363 
021 '367 
02 1. '370 
021. '372 
021. '375 
021 '376 
021 '377 
022 '000 
022 '001 
022 '003 
022 '006 
022' 00 7 
022'010 
022 '013 
022 '013 
022 '01 4 
022 '015 
022 '020 

022'021 
022 '023 

022'0;>6 
022 030 
022 '032 
022 '033 
022'035 
022 '040 
o;>2 '042 
022'043 
022'044 
022'045 
022 046 
022 047 
022'050 
022 '051 
022 '052 
022'053 

022'054 
022 '055 
022 '056 
022 '057 
022 '060 
022 '063 
022 '064 
022 '065 
022 '066 
022- 071 
022'072 
022 '074 
022'075 
022 '1.00 
022 ' 1.01. 
022' 1.02 
022 105 
022 '106 
022' 111 
022 112 
v>22' 113 
022' 114 
022' 117 
022'' 117 
022' 117 
022' 117 
022' 120 
022 '121 
022- I 2 4 
022' 1.25 
022' 130 
022' 131 
022' 1.32 
022 '133 
022'134 
022'135 
022' 136 
022 '137 
022' 140 
022 ' 14 1. 
022' 142 
022 ' 143 
022 M4 
' I 45 
2 ' ! 46 
022 ' 147 
022 '150 

. v. -i. -...' .1. 

022 154 

022' 155 

2' 160 

022 1.61 

022' t t 2 

2 163 



200 

240 
1 3 



341 

053 

176 

366 

022 

376 

312 013 022 

043 

043 

305 

1.1.6 

006 000 

052 173 022 

Oil 

301 

042 17 3 022 

323 

305 

i 022 
345 

036 005 
052 1.73 022 
016 021 
026 000 
I 72 

326 012 
32? 042 
306 I 2 
077 
127 
170 
027 
107 

175 

027 

! 57 

174 
027 

I 4 7 
172 
027 
015 

302 033 022 

03 7 

145 

1.50 

42 34 1. 020 
3 4 1 

306 060 
167 

001 300 377 
01.1 
345 

052 3 4:1 020 
035 
302 
341 
30:1. 
321 
303 



026 



o: 



>• > 



233 070 






163 

1.65 022 



345 
325 
052 
353 
052 
1.72 
037 
255 
037 
037 
1.72 
027 
127 
173 
7 
1.37 
1 7 4 
037 
1 4 7 
1 75 

03 ' 
157 

04 2 165 022 
353 

042 163 22 
3 2 I 
34 i 
3 1 I 



2950 

2960 

2970 

2990 

2990 

2992 

2994 

3000 

3010 

3015 

3020 

3030 

3040 

3050 

3055 

3060 

30 70 

3080 

3090 

3100 

3 1 1 

3 1.20 

3130 

3140 

3150 

7 160 

3170 

31.30 

3190 

3200 

3210 

3220 

3230 

3240 

3250 

3260 

3270 

3280 

3290 

3300 

331.0 

3320 

3330 

3340 

3350 

336 

3370 

3 3 BO 

3390 

3400 

34.10 

3420 

3430 

3440 

3450 

3460 

3470 

34B0 

3490 

3500 

3510 

3520 

3530 

3540 

3550 

3560 

3570 

35B0 

3590 

3600 

361.0 

3620 

3630 

3640 

3650 

3660 

36 70 

36B0 

3690 

3700 

371.0 

3720 



KEY1 POP H RECOVER TABLE POINTER. 
DCX H POINT TO DISPLAY CHARACTER. 
MOO ArM LOAD IT. 
OR I 128 SET 7INGER. 
STAX D PUT ON SCREEN. 
CPI ' '+128 

JUMP IP SPACE. 



LOAD SCORE. 



JZ KEY4 

INX H 

INX H 

PUSH B 

MOV CrM 

MOT BrO 

LHLD PLSC 

DAD B ADD CORRECT AMOUNT 

POP B 

SHI. D PLSC 
* UPDATE SCORE 
KEY' 4 PUSH D 

PUSH B 

LHLD SCPT LOAD 

PUSH H SAVE. 

MVI Er5 SET COUNTER. 

LHLD PLSC LOAD SCORE. 
SCORE! MVI C?17 

MVI DrO 



ON SCREEN. 



SCORE POINTER. 



MOV 

D I V 1 

JNC 

adi: 

DIV2 
MOV 
MOV 
RAL 
MOV 
MOV 
RAL 
MOV 
MOV 
RAL 

MOV 
MOV 

RAL 



>-> 7 
37 
37 

37 
37 

37 
37 
38 

38 
38 
38 



ArD 

SUI 

DIV7 

1 

CMC 

DrA 

ArD 

B<-A 
A 9 L 

LrA 
ArH 

H?A 

A , D 



10 



DCR C 

JNZ DIV1 
PAR 

MOV H»L 
MOV LfB 

SHLD PLACET! SAVE HI.../ 10. 
POP H RECOVER SCORE POINTER. 

0' PUT REMAINDER IN ASCII. 
ON SCREEN. 



ADI 
MOV 
LXI 

DAD 
PUSH 



Mr A PUT 
B»-64 

B POINT 
H SAVE 



TO NEXT PLACE. 
H AGAIN. 
I. H L D P L A C E f !. R E C V E R H I / I ♦ 



DCR 
JNZ 
POP 
POP 
POP 
JMP 



E 



RE PEA! 



5 



TIMES. 



SCORE! 

H 

B 

D GET EVERYTHING BACK. 

UAIT3 CONTINUE. 

* RANDOM BIT GENERATOR ROUTINE. PUTS ONE BIT 

* INTO CARRY. (THIS ALLOWS A SIMPLE 1 BIT 

* HARDWARE RANDOM TO BE USED INSTEAD.) 
RND PUSH H 

PUSH D 
LHLD RND! 
XCHG 
LHLD 
RNDA 
RAR 
XRA L 

RAR 
RAR 

MOV ArD 
RAL 

MOV DrA 
MOV ArE 
RAR 

MOV ErA 
MOV ArH 
RAR 



RND2 
MOV ArD 



30 
40 

50 
60 

70 
80 
90 
00 
I 
20 
30 



MOV 
MOV 
RAR 
MOV I 
SHLD 
XCHG 
SHLD 
POP D 
POP H 
RET 
t EQU'S 



H r A 
A * L 

vA 
RND 2 

RND I 



95 



022 '163 

022'163 
022' 163 
022 '163 
022' 165 
022' 167 
022' 171 
022' 173 
022' 175 
022' 177 
022' 1 77 
022 ' 200 
022 20:1. 
022 '202 
022'203 
022 '204 

V.' A.. A_ ... \,' J 

022 '206 
022'207 
022 '210 
022 '211 
022 '212 
022 '213 

w a., a.. ^.. I. *t 

022 '2 15 
022-216 

022 '217 

2 2 ' 2 '.> i) 

V/ A.. A. A'.. A.. \J 

W A- A.. V.. AV. .1. 

r,:> o • jog 

*/ A. ... ,/.. V. A. 

099' ^ 9 * 

\/ a., a.. a.. *:. ».J 

2 2 ' 2 2 /i 

V A.. A.. A_ A.. *? 

Q 9 9 ' 9 -) r -, 

r, 2 2 ' 20X 

022'227 
022'230 

022 '231 
A 2 2 "> «: 9 

W ».. A. A.. O A« 

022-233 
022-234 



w" «.. *_ 



'•> r tr 

».. \.J *J 



022'236 
022 237 
022'240 
022 '241 
022' 2 4 2 

022'243 
022-244 
022 '245 
022 '246 
022 '24 7 
022'250 



■ W A. 



' ' > 

W A.. A.. 
• » 



■ • ■ . . 



53 



r, -> ••: 



■ 






W A.. A. 






■ :■ jl a 



261 

i /. - 

V *.- A.. A. \.J ^ 



,' ') • ' • /, ,1 
I > > ■* ) * > £ B" 

* ■ A. ... 

) ' ■■> jL jC. 

\- A. '- 

.-.••■;) >7 | 

*. A.. A I 

,-,'•> ') ■/•I 

I I A,.. A.. 

An ;> 9 7 / 

\- A . A.. A 

_ .., , y , ... ... 

*-' A- A* 



' •' 



o 



•) 9 -7 



V *.. A.. 

\/ A.. A„ aV 

•2 



22-300 
02/ ; '30 I 
022'302 
022 303 
022 '304 
305 
$06 

r. ■■■)'■! 'Xf\"7 

W A.. / .. 





057 

077 
024 
050 
204 
041 

1.34 

174 

024 

050 

041 

204 

055 

137 

012 

036 

250 

242 

041 

061 

0.12 

036 

105 

025 

047 

042 

005 

03.1 

377 

377 

1 1 7 

157 

002 

01.2 

000 

000 

050 

071 

004 

1 

1 1 

001 

51 

• ! 

010 

i '4 
H 

I. 1 

'6 

'■> 

1 7 

.6 
244 
024 

136 
6 

01 7 

036 
050 
045 
I. 2 6 
166 
i 7 
036 
205 
202 
000 



>22 ' 

5 1 
000 '0 
000 '071 

000 '0 74 
000 '< 

000 100 

A r, n > i ,-■ i 
»• \.* \/ .i. ■„• .1. 

000 MO J 

000 M03 



345 
052 
053 
042 
3 4 1 
3 73 
3 1 1 



103 
103 000 



3840 

3850 

3870 

3880 

3890 

3900 

3910 

3920 

3930 

6000 

6100 

6.1.10 

6120 

6130 

6.140 

6150 

6160 

6170 

6180 

6190 

6200 

6210 

6220 

6230 

6240 

6250 

6 260 

6270 

6280 

6290 

6300 

6310 

6320 

6330 

6340 

6350 

6360 

6370 

6380 

6390 

6400 

64.10 

6420 

6430 

6440 

6450 

6460 

6470 

6480 

6490 

6500 

6510 

6520 

65 

6540 

6550 

656 

6570 

6 580 

6590 

660 

6610 

6620 

6630 

6 5 A 
6650 
6660 
6670 
6680 
6690 
00 
6710 
6720 
67 30 
6 740 
6 750 
6760 
6770 
6780 
6790 
6800 
6810 



20 
40 
84H 
2 1 H 

ZM-2 (BACK SLASH) 
'Z'f34 (VERTICAL BAR) 
20 
40 
2 1 H 
84H 



95 



10 

30 

0A8H 

0A2H 

' ! ' 

' 1 " 

10 

30 

45H 

15H 

39 



(UNDERLINE) 



STATUS EQU 1.26 
DATA EQU 127 

* TEMPORARIES 
RND1 IiS 2 
RND2 DS 2 

PL1 DS 2 
PL 2 DS 2 
PLSC DS 2 
SCPT DS 2 

* CHARACTER TABLE. 

table db v 

db '-; } - 

DB 
DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

OB 

DB 

DB 

DB 

DB 

DB 

DB 



( ' ) 



25 

OEFH 

OEFH 

- Q ■ 

'0'+32 
9 

10 
OH 
OH 
' ( ' 
'9' 
4 
8 

4 1 H 
i i-i 



4 
8 
4H 

I All 



the Altair bus is pulled low to 
generate an interrupt. It is 
held low until the SINTA 
signal (interrupt acknowl- 
edge) occurs. This circuit 
must be used only if a 
priority in irrupt chip is not 
used, and no other inter- 
rupting devices exist. If a 
priority interrupt card is 
used, you may be able to 
connect the output of the 
flip-flop (pin 6) to interrupt 
line 7 to allow the interrupt 
card to work, but no other 
devices may use line 7. As 
mentioned in the text above, 
this circuit may be replaced 
by a timing loop in place of 
the interrupt routine; but 
using the circuit ensures more 
accurate movement of the 
zinger. 

Paper tapes of the source 
and object of Incredizing are 
available for a $5 reproduc- 
tion and postage charge from: 
ALF Products, Inc., Attn.: 
Philip Tubb, 128 South Taft, 
Denver CO 80228. ■ 



♦5V 



<£" 



a 



820 
9000 
9010 
9020 
9030 

90 40 
9 >j r. 

9060 

• '0 

9080 

9090 



DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 

DB 



15 
30 
4 1 H 
0A1H 



♦5V 



NE555 



LI 



I00K 



27K 



SET INITIALLY 

TO HALF WAY POINT 



05 M F 



<7 K7 



APPROX 
256Hz 



30 

0A4H 

14H 

94 (UP 

'6' 

15 

30 

28H 

25H 

' V 

'g 

15 
30 
B5H 
B2H 

END 



ARROW 



f32 




PINT 
•■ ALTAIR BUS 
PIN 73 



NOTE RST 7 
OCCURS AUTO- 
MATICALLY DUE 
TO OPEN LINES 



SINTA 

ALTAIR BUS 
PIN 96 



Fig. 1. Timer circuit. 



MARKER 



* INTERRUPT ROUTINE AT OCTAL. 70 
0R0 56 
PUSH H 
LHLD CLOCK 
DCX H 
SHLD CLOCK 



POP 
EI 

PET 
CLOCK 



H 



DS 



96 






oo~ 



*"OH 



***Cl 



s **«rZn*°2-*o 



Tuaey 

&XP, 
AS 



»Zi.L 



o*rti 



«CJry 



^tOSA 



*r«n/ 



o*,^ 






S?*?^ 



?***?,**"> 









iJ *° SUSS? »••; PJC tTo « 



' ill . *•**<*««** 

7 °S«?04 

" 



W 



»JJC7f 



^O ' 



OH 






TB ADE OPPORTUNITIES PROGRAM 



JKFF^HSO, PTvPi.K SUV* v.* 



overseas trade leads like this^ 
you could open offices in 127 countries 

Or use our computer. 



The U.S. Commerce Department's computer- 
operated Trade Opportunities Program 
(TOP) can supply you with immediate, 
continuing, specific leads tailored to your 
sales objectives for any of 127 countries. So 
if you can't be all over the world at one time, 
we've got the answer. Send us the coupon 
now and see how you can find where the live 
leads are living. 



Secretary of Commerce 

U.S. Department of Commerce, B1C-9A 

Washington, DC. 20230 

Please tell me more about the Trade Opportunities 
Program (TOP). 

Name . — 



Title 



Company 



(Sinai 



A Public Servtoe of This Magazine & The Advertising Council 



Address 



City 



State 



Zip 



L 



Harley D. Johnson 
20415 S. Patsy Dr. 
Oregon City OR 97045 



Avoid Program Loading 

and Reloading 



new 4K EPROM board from SWTP 



Why buy a 4K 1 702A 
EPROM memory 
board? I needed one for my 



new operating system, which 
has all the most-used entry 
points of MIKBUG plus a 



™ A JO^ 



MFMEN- 




EPROM-0 
EPROM- I 
-EPROM-2 
— EPROM- 3 
EPROM -4 
EPROM-5 
- EPROM-6 
EPROM-7- 
EPROM-8 
EPROM-9 
-EPROM-IO- 
-EPROM- I I • 
FPR0M-I2- 
- EPROM- 13- 
-EPR0M-I4- 
EPR0M-I5- 



EPROM FNABLES 



FPROM ADDRESS BUS 



NOTE I— ICI8 & ICI9 PINS I a 15 
TIED TO GROUND 



)T0 EPROMS 1-15 
C2-ICI6 



ALL 16 EPROM IC S HAVE ALL 
PINS BUSED TOGETHER WITH 
THE EXCEPTION OF THE INDIVIDUAL 
CHIP FNABLES PIN 14 




15=^- 



-DJ 
02 

-D4 
-D5 
-D6 
-D7 



Fig. 1. APTEC 4K EPROM board schematic. The board can be strapped 
to reside in any 4K boundary in the first 32 K of memory via jumper at 
point A. 



formatted binary loader and 
dump for cassette tape, 
EPROM programming and 
verifying and word-formatted 
dump-to-printer routine. 
These are some of the possi- 
bilities for firmware that can 
be used in any system. Or, 
how about a floppy disk 
operating system? . . . Let 
your imagination run wild. 

The first thing to do after 
buying the FPROM board is 
to write the software. Sharp- 
en your pencil if you haven't 
already. 

The second is to program 
the 1 702s. There are various 
options, including having a 
friend do it for you. If your 
friend has no programmer, 
have Morrow, God bout, 
Cramer, Almac/Stroum or 
other microcomputer dis- 
tributor in your area do it for 
you. The price is nominal. I 
paid, at one time, about $5 to 
have one 1702 programmed. 

The SWTPC 6800 has 
needed some new kits and 
boards to complement the 



existing system for a long 
time. One of the newest to 
arrive is the APTEC 4K 
1702A EPROM memory 
board. This board will pro- 
vide added resident firmware 
to your system. 

The board is of quality 
design, featuring an unbroken 
ground plane surrounding the 
top side of a double-sided 
plated-through board. The 
ground plane runs between 
each row of integrated cir- 
cuits. 

Liberal use of bypass 
capacitors and the good 
ground plane minimize noise, 
and the board will accept up 
to 16 1702A EPROMs for a 
total of 4096 bytes. 

Access time of the 1702 
EPROMs may be too slow for 
the 1 MHz system clock. This 
possible problem may be 
solved by using the 02 clock 
stretcher as described by 
Jerry Henshaw of APTEC in 
the December 1976 issue of 
Byte. 

The slow memory line 



CUT THIS ETCH 




is 



-*o 



|4 



13 



12 




\ 






>, 


II 


A 


10 






09 






07 


o7 





Fig. 2. Modification to allow board to reside in upper 32K of memory. 
Involves cutting of etch and wiring in unused gate of IC17. 



98 




APT EC EPROM memory completed, EPROMs installed and ready to 
run. 



from the 02 clock stretcher 
board is brought in via the 
UD1 or UD2 (user-defined) 
bus on the motherboard to 
the EPROM board. 

The board can be strapped 
to reside in any 4K boundary 
in the first 32K of address- 
able memory (see Fig. 1). The 
upper 32K of memory can be 
accessed by a simple circuit 
modification (see Fig. 2). The 
address map in Fig. 3 will be 
helpful. 

How It Works 

As seen in Fig. 1, address 
decoding is done by IC20 and 
IC21. IC21 is a three-to-eight- 
line decoder, which is enabled 
by ANDing the Valid Mem- 
ory Address (VMA), 02 clock 
and the complement of 
address line A15; also de- 
coded are address lines A12- 
A14. Any of the outputs of 
IC21 can be strapped to point 
A on the board to provide the 
eight 4K boundaries (see Fig. 
3). This point A is used to 
enable IC20, a 4-to-1 6-line 
decoder and to signal the 02 
clock stretcher to slow the 
clock (SM). IC20 decodes 
address lines A8-A1 1 for 
addressing one of the 16 
EPROM locations. 

Address lines AO - A7 are 
buffered by IC18 and IC19; 
these form the address lines 
for the EPROMs. 

The data buses are Tri- 
state buffered out of the 
EPROMs by IC22 and IC23, 
and are enabled by a mem- 



ory-read cycle from IC17. All 
data lines from the EPROMs 
are pulled up to +5 V through 
1k resistors R1 - R8. 

Programming Formats 

There are many EPROM 
programming formats 
commonly in use. The most 
popular are Mark Sense cards 
and BPNF, using punched 
paper tape. 

The Mark Sense card, the 
size of an IBM-style punch 
card, has 32 fields of eight 
bits per field (see Fig. 4). 

To develop a truth table 
for programming the 1702, 
you need to fill in small 
rectangles in each field. A 
soft lead pencil is used; no. 1 
or 2 hardness is suitable. A 
filled-in bit equals a logical 
one (1); no mark equals a 
logical zero (0). If an error is 



EPROM No. 


Address Range 





*X000- XOFF 


1 


X100- X1FF 


2 


X200- X2FF 


3 


X300- X3FF 


4 


X400- X4FF 


5 


X500- X5FF 


6 


X600- X6FF 


7 


X700-X7FF 


8 


X800-X8FF 


9 


X900-X9FF 


10 


XA00-XAFF 


11 


XB00-XBFF 


12 


XC00 - XCFF 


13 


XD00- XDFF 


14 


XE00-XEFF 


15 


XF00- XFFF 



ICNo. 

1 

2 

3 

4 

5 

6 

7 

8 

9 
10 
11 
12 
13 
14 
15 
16 



* The X is the strapping at point A on the board 
0-7; a strap at 3, for example, sets the board for 
3000-3FFF. With the circuit change for the upper 
32K of memory, the strapping would equal 8-F. 

Fig. 3. EPROM Address Map. 



made, erase the mark well or 
it may be sensed as a one (1). 
If many corrections are made, 
start over with a new card to 
ensure a good program. 

BPNF format uses 
punched paper tape to iden- 
tify the bit pattern to be 
programmed. The character 
format rules are as follows: B 
start character, F stop char- 
acter, P data bit logical one 
(1) and N data bit logical zero 
(0). A typical punch format is 
shown in Fig. 5. The format 
requires the following: 

1. Exactly 256 word fields in 
consecutive sequence, starting 
with word field and ending 
with word field 255. If only a 
portion of the EPROM is to 



be programmed, the same 
format requirements apply. 

2. A word field must contain 
ten of the format characters, 
with eight data characters 
framed with a start B and a 
stop F. If you make an error 
and haven't typed an F, type 
a B and retype the eight data 
characters followed by F. 

If any character other than 
P or N is typed, it is an error 
and should be typed over 
with rubouts. 

3. A leader and a trailer of at 
least 25 rubouts precede the 
first word field and follow 
the last word field. 

4. A carriage return and line 
feed need to be inserted be- 
fore each word field or at 
least between every four 



— 32 word fields 



i i i i i i i i 1 1 i i i i i i 1 1 i i i i i i i i 'J' '''' 



2 

D 


a 

h 

0) 

\ 

< 

2 

j 

< 



01 

u 
z 



oc 

h- 
u 

w 

_l 
w 



CD O 

c/> CD 


D 


D 








D 


D 


D 


D 


D 





D 


D 


D 


D 


D 


D 


D 





D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


a 


a 


a 


CD 


D 


D 


a 


D 





D 





D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


a 


D 


a 


D 


D 


D 


D 


D 


D 


D 


D 


D 


CM 

CO 


Q 


Q 


D 


D 


D 


D 


Q 


D 


D 


D 





Q 


D 


D 


D 


D 


D 


D 


a 


D 


D 


D 


D 


D 


D 


a 


D 


D 


D 


D 


D 


D 


co 00 

< CD 


D 
D 






D 


D 


D 


D 


D 


D 


a 


D 





D 


D 


D 


D 


a 





D 


D 


D 


D 


D 


D 


D 


D 


D 








D 


a 


a 
a 


D 
D 


D 


D 


D 


D 


D 


a 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 








D 


D 


D 


D 


D 


Q 
m 

CD 


D 


Q 


D 





D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 


D 





D 


D 


a 


D 


D 


D 


D 


D 


D 


D 


a 


D 


id 
m 





Q 








D 


D 


D 


D 


D 





D 


D 


D 


D 


D 


D 


D 


D 


D 


D 








D 


D 


D 


D 


Q 


Q 


a 


D 


D 


a 


CD r» 
to CO 

3 


D 


D 





a 


D 


D 


a 


D 





a 


D 


D 





D 


D 


D 


D 


D 


a 


D 


D 


D 


D 


D 


D 


a 


D 


D 


D 


D 


a 


D 


-7! 


o 


»» 


, ,_ 


n 


« 


*> 


<« 


r^ 


eo 


« 


o 


»» 


«N 


rt 


« 


■n 


«• 


r» 


* 


a» 


o 

J__ 


«* 


INI 




CM 


in 

IN 




M 




o 


n 



IL 
O 



This mark sense Truth Table card wil 
P/l 

wc 
al 

ni the r.-ird 



accommodate any 



/ROM having a word length up to 8 bits/wcrd and up to 32 
/ords For programs greater than 32 words long, use addition 
I cards and indicate their sequence in the space at the bottom 



Location 
User 



P/ROM Type 



Phone J_ 
Mfr. 



o 

z 

o 
re 
< 
o 



o 

z 

< 
or. 
o 
o 
rr 

CL 



I ! I I I | | | ■■■■■■■■■■■■ I I I I I I I I I I I I 



Fig. 4. A typical Mark Sense card with 32 word fields of eight bits per field. 



99 



Start Character 



"1 



Stop Character 



Data Field 



MSB 



LSB 



BPNNNPPNPF BPPPPNNNPF 



i r 



BPNPNPNPNF 



Fig. 5. BPNF punch-tape format showing typical word field. 



word fields. This is to help in 
error checking. A word 
number as a "comment" at 
every word field or every four 
word fields is desirable. A 
comment may not contain Bs 
or Fs. See Fig. 6, format 
checking. 

If you are serious about 
programming EPROMs for 
yourself or others, I suggest 
writing the software; and let 
your computer do it for you. 



Computer controlled: Szerlip 
Enterprises, 1414 W. 259th St., 
Harbor City CA 90710. Kit price 
$165. 

Manually controlled: Associated 
Electronics, 12444 Lambert 
Circle, Garden Grove CA 92614. 
Kit price $189.95. 

Table 1. EPROM programmers. 



There are various other 
1702 programmers on the 
market. Table 1 lists two. The 
first is computer controlled. 
The second is a manually 
operated keyboard-type with 
hex display. 

Conclusion 

The APTEC EPROM 
board is straightforward in 
design and relatively easy to 
assemble (see Photo). Then, 
an hour or so to load your 
EPROMs with your software 
. . . and you're ready to go. 

The 4K EPROM is avail- 
able as a kit, with all ICs, (less 
1702A), sockets and edge 
connectors, resistors and 
capacitors, for $87.50, or 
board only and edge con- 
nector for $27.50. The 02 
clock stretcher in kit or board 
only is available for $6.25 



and $2.50, respectively. Kits 
and boards are shipped post- 
paid in about two to four 
weeks. 

Another new product 
from APTEC for the SWTPC 
6800 is in the works. It's a 
2704/2708 EPR )M memory 
board, with at least 8K and 
on-board programming facil- 



0000 
0001 
0002 
0003 



BPPPNNNPPF 



BNNNNNNPPF 



BPPPPPPPPF 



BNNPPPPPPF 



0255 



BPPNNNPPPF 



ities. A programming subrou- 
tine, or possibly a bootstrap 
EPROM option, will be in- 
cluded. This new board is due 
for release soon, according to 
APTEC. 

After using the 1702A 
EPROM board and not having 
a programmer available when 
I need one, I know I can 
easily use a 2704/2708 board 
with on-board programming. 

(Thanks to Jerry Henshaw, 
APTEC, Inc., for providing 
the photograph and sche- 
matics of the 4K EPROM 
board.) ■ 



Number "comment" 



.Word field through 255. 

CR/LF before each word 
field. 



Fig. 6. Typed out format checking done by reading punched tape back 
to TTY. 



' NOT A KIT 

• 8v(a15A, ±16v(a3A power 

• Rack mountable 

• 15 slot motherboard 

• Card cage 

• Fan, line cord, fuse, 
switch, EMI filter 

» Desk top version option 
8v(a30A, ±16v(M0A option 
SS-50 bus option 

• voltage monitor option 



Rack 
mounted 
model $200 



Desk 

top model 

$235 

Write or call for a copy of our 

detailed brochure which includes 

our application note 

BUILDING CHEAP COMPUTERS. 

INrEGWND 

8474 Ave 296 • Visalia, CA 93277 • (209) 733 9288 
We accept BankAmencard/Visa and Master Charge 




8700 





ntroller 



Answer For... 

Student 

lobby! 

Manufacturer 

1*11*11*1 

8700 PrOCeSSOT: 6503MPU. Wear free "Active Keyboard'. 

Micro-Diagnostic® Extensive documentation. Fully Socketed. 

Pieblig Monitor: Relative address calculator. Pointer High-low. 
User Subroutines, Back- step key. 

Cassette Interface: Load & Dump by file *. Tape motion 
control, Positive indication of operation. 

Applications systems from $90 ( lOunit quantity) 

Development systems from $149 (single unit) 

■ 1 tLL rlt IMV-lKt i want to see f or m y 8 elf that the 8700 is The Answer. 



* ( ) Please send documentation 
I and price lists. $10 enclosed. 

'. ( ) I don' t need documentation 
please send price lists. 

\ { ) Please send FREE CATALOG. 



name: 



address: 



city: 



state: 



zip: 



ELECTRONICS KFT.2K • 1020 W Wilshire Blvd. • Oklahoma City OK 73116 (405) 843-9626: 



100 






THE SSB *150 

FLOPPY DISCOUNT 




Affordable 

The tribe at Smoke Signal Broadcasting took our 
BFD-68 disk system and scalped the price, but 
not the features to create the ABFD-68 (Affordable 
Basic Floppy Disk). We appreciate the fact that 
the computer hobbyist gave us our start and we 
haven't forgotten you. 

$649 Assembled 

Compare Price. Our SS-50 bus compatible disk 
system is $1 50 less than the assembled price of the 
leading S-1 00 disk system. And you can at least 
double that savings when you buy one of the 
computers manufactured by MSI or SWTPC that 
use the superior 6800 microprocessor. 

Programmable 

The BFD-68 is well known for its fine software. The 
system comes with the best disk operating system 
available and we offer a multitude of other com- 
patible software products. These include a BASIC 
interpreter with disk file handling capability. By 
the way, our DOS now easily handles true random 
access files as well as sequential. Also, we have a 
super fast BASIC compiler for business applica- 
tions. In addition, a Text Editor, 2 Assemblers, a 



Trace Disassembler useful for program debugging 
and an Object to Source Code Generator are all 
stock items available for immediate delivery. 
A word processor will be available very soon. 

Reliable 

We delivered our first mini-floppy disk system a 
year ago — 6 months ahead of any other 6800 
based mini system. Thus, we've had twice the 
experience in building reliability into the system. 
Our NEW disk controller was designed using all 
we have learned in the past year about system 
reliability. 

The ABFD-68 contains all the built in reliability 
of our regular BFD-68 plus you save money by 
supplying your own cabinet and power supply 
for the disk. 

Available 

We've shipped literally tons of our BFD-68 disk 
system in the past year and have learned to keep 
our production up with demand. Give us a call and 
chances are we'll be able to ship you the new 
ABFD-68 from stock and charge it to your Master 
Charge or Visa card. Better yet, ask us for the name 
of the computer store nearest you that carries our 
complete line of computer products. 




SMOIE SIGMi BBMBCASTIM 

P.O. Box 20 1 7, Hollywood. C A 90028 • ( 2 I 3 ) 462-5652 



S46 



101 



James McClure 
1019 Van Kirk St. 
Philadelphia PA 19149 



Time-sharing for the Home System 

running two programs at once 



STKA 

STKB 

PRGMA 

PRGMB 

TEMP: 

GO: 



ORG 
EQU 
EQU 
EQU 
EQU 
DW 

LXI 

LXI 

PUSH 

PUSH 

PUSH 

PUSH 

PUSH 

LXI 

DAD 

SHLD 

LXI 

EI 

JMP 



XXXXH 

H 

H 

H 

H 

0000H 

SP,STKB 

H^RGMB 

H 

H 

D 

B 

PSW 

H,0 

SP 

TEMP 

SP,STKA 

PRGMA 



Title — LINK 
by Jim McClure 

July 1977 



starting address may be anywhere 
initial stack pointer for PRGMA 
initial stack pointer for PRGMB 
istart address of first program 
;start address of second program 
;temporary storage for stack pointer 

startup routine — runs PRGMA first 
save fake return address as start 
of PRGMB 
save all registers in specific 

sequence 



;save current SP in TEMP 



set SP for PRGMA 
enable interrupts 
yrun PRGMA 



Upon receiving an interrupt, SWTCH changes program execution from 
current routine 



SWTCH: 



PUSH 

PUSH 

PUSH 

PUSH 

LXI 

DAD 

XCHG 

LHLD 

XCHG 

SHLD 

XCHG 

SPHL 

POP 

POP 

POP 

POP 

EI 

RET 



H 

D 

B 

PSW 

H,0 

SP 

TEMP 

TEMP 



PSW 
B 
D 
H 



save all registers and return address 
on program's stack 



save current SP in TEMP after 
^retrieving previous pointer 



;a JMP must be placed at the desired interrupt 
execution to SWTCH 



INT: 



ORG 

JMP 

END 



H 

SWTCH 



piew stack pointer 

pop registers in opposite sequence 



enable interrupts after exiting 
SWTCH 



vector to transfer 



;desired interrupt vector (0038H if 
;vectored interrupt is not being used) 



Program Listing. 



The following program 
was written for the 8080 
series microcomputers, with 
or without vectored interrupt 
capability. In combination 
with a small amount of hard- 
ware, which is unnecessary if 
the system has a real-time 
clock, the program will allow 
simultaneous execution of 
two routines. It will also per- 
mit two users to share the 
same program, provided that 
it is reentrant coded. 

The time-sharing routine, 
LINK, functions on an inter- 
rupt-timing basis. Each time 
an interrupt is received, LINK 
switches execution from 
Program A (PRGMA) to Pro- 
gram B (PRGMB) or vice 
versa. During the switch, all 
registers are saved, including 
the stack pointer, thereby iso- 
lating the two programs. 
However, care must be taken 
to insure that no variables are 
shared by the two programs 
as this will cause unpre- 
dictable errors. 

For LINK to function 
properly, a pulse generator 
must be provided to generate 
periodic interrupts. As men- 
tioned earlier, a real-time 
clock is suitable, provided it 
has an output in kHz. (A 
low-frequency oscillator out- 
put may be acceptable if 
there are no high-speed 
peripherals involved. It is also 
important to note that there 
is an upper limit to the 
switching frequency. Since 



102 



LINK must be executed for 
every switch, an equal 
number of instructions in the 
programs being run should be 
executed in order to maintain 
efficiency at about 25 per- 
cent per program.) 

If there is no output of 
this frequency, or a real-time 
clock is not available, the 
circuit in Fig. 1 may be used. 
It consists of an NE555 timer 
operating in the astable mode 
to produce an output in the 
mid-audio range. This circuit 
may be connected directly to 
the +8 V line, provided it is 
adequately filtered. Other- 
wise, any voltage from +5 to 
+15 volts may be used. 

The output from the timer 



TH€ COMPUTCR CORNCR 



or real-time clock should be 
connected to either PINT or 
one of the VI lines, de- 
pending on whether vectored 
interrupt is being used. If a 
coupling capacitor must be 
used, it should have a large 
capacitance, as a small value 
will degrade the quality of 
the generator's square wave. 
As the program listing in- 
dicates, there are several 
operands left blank. These 
include the starting address of 
LINK, which can be any- 
where within the available 
memory (LINK may be 
placed in ROM, provided the 
temporary variable, TEMP, 
resides in read-write 
memory), starting addresses 



♦ V 
(SEE 
TEXT) 

A 



OUTPUT 
TO PINT v 
OR ' 

VI0-VI7 



NE555 



TO 

COMPUTER > 
GROUND 



"IF 
I— H 



•470 



|220 



01 



Fig. 1. 



for Programs A and B and the 
initial values of the stack 
pointer for the two programs. 
On page two, the address of 
the desired interrupt vector 
must be filled in. Afterwards, 
LINK may be assembled and 



loaded, along with the two 
programs to be run. Start-up 
is accomplished by applying 
power to the pulse generator, 
with interrupts disabled, and 
jumping to GO. 

One final note: To facili- 
tate testing the software, a 
debounced push-button 
switch to ground may be con- 
nected in place of the pulse 
generator (timer or clock). 
This will allow manual 
switching between the two 
programs. 

It is my hope that ex- 
tending the capabilities of the 
8080 into the realms of time- 
sharing will defray the overall 
cost of microcomputer sys- 
tems. ■ 



White Plains Mall, Upper Level 

200 Hamilton Ave. 

White Plains NY 10601 

Phone: (914) WH9-DATA 

Near Bronx River Parkway & 
Cross Westchester Expressway. 
Plenty of parking. 

"The S100 Bus stops at 
White Plains" with one of 
the largest collections of boards 
compatible with the Altair Bus 
(also IMSAI) in the greater NY 
area.^ 

You've read about the 
Sol-20, now come up and 
see it. We carry Processor Tech, 
Polymorphic, IMSAI, North Star, 
TDL, Blast Master and Pickles 
and Trout. 

GOOD PRICE AND SERVICE 
10 6 Mon.-Sat. 



Thurs. till 9 



TH€ COMPUTCR CORNCR 



C-28 



" PIXE-PLEXER 

Ends those SPECIAL Video Monitor PROBLEMS! 



I MODEL 
PXP-4500 




$24.50 
kit 



Pixe-Plexer is an IC type modulator-RF oscillator for 
interfacing audio, color and regular monochrome video 
signals from computers, TV cameras, VTR's, games, etc., 
for display on any regular TV set via the antenna 
terminals. Power requirements: 15V @50 ma max. 
Operates on ch. 2-6 tunable. Includes 3.58 Mhz color 
subcarrier and 4.5 Mhz audio subcarrier with varactor 
modulator. R-Y and BY inputs. Analog or digital inputs. 
Complete with IC data sheet and instructions. Numerous 
circuit variations from deluxe to simple. 
For all other video display needs, don't forget our 
popular "Pixe-Verter" Mod. RF kit. Model PXV-2A. 
$8.50. 

Available from your local dealer or factory-direct. Phone 
or write for additional assistance. Dial 402-987-3771. 

— ^ v/V> 

13-K Broadway ATV Research Dakota City, NE. 

t„»-^N> A43 68731 






SURPLUS ELECTRONICS 



IBMSELECTRItT 

BASED I/O TERMINAL 

(USED) $695.00 

• Tape Drives • Cable 

• Cassette Drives • Wire 

• Power Supplies 12V15A, 12V25A, 
5V35A Others, • Displays 

• Cabinets • XFMRS • Heat 
Sinks • Printers • Components 

Many other items 

Write for free catalog 

WORLDWIDE ELECT. INC. 

10 FLAGSTONE DRIVE 

HUDSON, N.H. 03051 

Phone orders accepted using VISA 

or MC. Toll Free 1-800-258-1036 

In N.H. 603-885-3705 W16 




argains 




IMSAI 8080 



•■■■•»» 



IMSAI etal 



MARKETLINE SYSTEMS, Inc. 

2337 Philmont Ave. 
Huntingdon Valley, Pa. 19006 

Phone 215/947-6670 M17 



Complete retail & service computer 
outlet in 

LONG ISLAND 

FREE CONSULTATION ON ALL 
YOUR NEEDS 

In stock - IMSAI. Polymorphic, TDL, 

Digital Systems, Tarbell, Soroc, 

Large variety of memories, 

interfaces, software, books & magazines 

PRINTERS • FLOPPIES • CRTs 

Custom designed systems for 
persona/, educational & business use 

Free Newsletter — Systems 
Demonstration — Best Service 

Computer 1 1 Ucrosystems 

1311 Northern Blvd. 
Manhasset NY 11030 C44 

(516) 627-3640 
Open Tues-Sat: Wed-Sat 10-6; Tues 10-9 



Digital Group 

System owners — now you have MOOS. 
The most sophisticated and advanced 
Z-80 operating system for both disk 
and phi-decks. Our approach to file 
management rivals those found in 
large computer installations. MC/OS 
allows user programs full file access 
tremendously enhancing your system's 
capability. 

The following is a partial list of Pro- 
grams available ready to run under 
MC/OS with full file capability. 

BASIC Compilers-Two of Them! 

Fortran IV Compiler 

Macro Assembler 

Word Processor 

BASIC Language Course 

YOU OWE IT TO YOURSELF TO FIND 
OUT. SEND FOR COMPLETE CATA- 
LOGUE NOW! 




P.O. Box 4069 Pompano Beach. Fla 33063 



103 



Dave Maciorowski 

173 Oakland Road 

E. Pepperell MA 01437 



Displaying 
Hexadecimal 

and other related ideas 



Recently, while I was 
working on yet another 
peripheral for my micro- 
processor system, an 
interesting question came up: 



"What is the cheapest way to 
display hexadecimal digits on 
a panel display?" Hmmm. 
That should be pretty easy. 
Let's stroll over to the book- 



FROM 

COMMON- >- 

ANODE TYPE >- 
DECODER /DRIVER > 

(TYPICALLY >- 

AN OPEN- >- 

COLLECTOR >- 

DRIVER) V 



OPEN OR *5VDC 



6ND 



DISABLED 



DIGIT 
ENABLED 



IK 

I/4W 
-vw — 



shelf and see what we can 
find. 

The display type should 
probably be a seven-segment 
LED. They are plentiful and 



♦5VDC 



IK 

I/4W 
— wv— 



©2N2907 
2N3906 
1 



rnrrn 



TYPICAL 
ANODE - 
DRIVER 



MAXIMUM CURRENT HERE 
I EQUALS 8 SEGMENTS TIMES 
15 mA/SEGMENT OR I20 mA 



SEGMENT LINES 

220n 
1/4 W 
CARBON 



-wv- 



-vw- 



-<\A/V- 



-VA- 



-Wr 



-VN^- 



COMMON-ANODE LED DISPLAY 



DP 



-vw- 



OPEN 



GND 



OFF 



ON 



(CHOSEN FOR 15mA PER SEGMENT) 



* TO OTHER 
-♦ DISPLAY 
■• SEGMENT 



■• LINES WHEN 
* USED IN 



-► A MULTIPLEX 
■*■ CONFIGURATION 



Fig. 1(a). Common-anode display configuation. 



cheap, with many available 
for a dollar or so per digit. My 
favorite is the Hewlett- 
Packard 5082-7730/31. It is 
available in the MAN-1 style 
package and is bright and very 
readable at ten feet! It is a 
common-anode type, and a 
typical configuration for it is 
shown in Fig. 1(a). A diagram 
for common-cathode LEDs is 
shown in Fig. 1 (b). 

What About Decoders? 

The first logical place to 
look for decoders is in the 
7400 logic series. These are 
plentiful and cheap (there are 
those key words again). 
Listed under "BCD-to-Seven- 
Segment Decoder/Drivers" we 
find the 7446, 7447, 7448 
and 7449. These devices will 
decode a BCD input to the 
outputs necessary to activate 
a seven-segment display (see 
Fig. 2(a)). But look. Numerals 
through 9 are OK, but A 
through F are nowhere to be 
found. (Instead we find 
gibberish.) A lot of good 
those are in displaying hexa- 



104 



♦5VDC 



♦ 5VDC 



GND 

FROM 
COMMON - 
CATHODE 
TYPE 



—. ON 

ID I— OFF 



DECODER/DRIVER > 



I I li 



SEGMENT LINES 



■^^ (CHOSEN FOR 15mA 
CARBON P " SEGMENT) 



-► TO 
-» OTHER 



-* DISPLAY 
-* SEGMENT 



— ► LINES WHEN 
— ► USED IN A 
— ► MULTIPLEX 



— ► CONFIGURATION 



DP 



ttttttt" 



♦5VDC — iDIGIT ENABLED 
GNd' — DISABLED 



COMMON- CATHODE LED DISPLAY 




MAXIMUM CURRENT HERE 
»I EQUALS 8 SEGMENTS TIMES 15mA/ 
SEGMENT OR 120 mA 



TYPICAL CATHODE DRIVER 
(OPEN-COLLECTOR) 



Fig. Kb). Common-cathode display configuation. 



(A) 



7446,7447 


7448,7449 


























123456789 


10 II 12 13 14 15 














l — 1 
l_l 


1 
1 


1 
l_ 


1 
1 


1 1 
1 


1 

_l 


1 
l_l 


1 


1 1 
l_l 


l_l 


c 


_l 


l_l 


l~ 


1 
1 













(B) 



9368,9369,9370 




























12 3 


4 


5 


6 


7 


8 


9 


10 


ii 


12 


13 


14 


15 
































1 1 
l_l 


1 
1 


i 


1 
i 


1 1 
1 


I - 
l 


i~i 


_ 1 
1 


l — 1 

o 


Q 


n 

i i 


i 

i i 


l — 
1 


1 
1 1 


I - 
1 


l — 
l — 



































NOTE b AND d ARE LOWERCASE 



DIALIGHT 745-0007 



(C) 



10 



12 



13 



14 



15 



(D) 



FORMAT OF 


(b) 


WITH 


ADDED 


DECIMAL P0IN1 


ON 


LOWERCASE " 


b" AND "d 


ii 




01 23456789 


10 II 12 13 14 15 














1 1 

1 1 


1 

1 


l 
i 


_l 


1 1 
1 


1 

i 


l~ 
i I 


1 
1 


1 1 


1 1 
1 


l~ 1 
1 ' 


1 


1 
1 


1 


I - 
i 


1 
1 











(E) 



SEGMENT ASSIGNMENTS IN 
A 7-SEGMENT DISPLAY 



0P» 




Fig. 2. Display formats. 



decimal digits. Well, what else 

can we find? 

The Fairchild data book 
shows some interesting de- 
coders. In addition to the 
ones above, there is a hexa- 
decimal decoder/driver. Des- 
ignated the 9368, 9369, 
9370, these latch/decoder/ 
drivers will display the digits 
of Fig. 2(b). The 9368 and 



9369 drive common-cathode 
LEDs, while the 9370 drives 
common-anode LEDs. Typ- 
ical circuit connections are 
shown in Fig. 3. 

The Dialight 745-0007 is 
the next display we find. Its 
display format is shown in 
Fig. 2(c). It includes a latch, 
decoder, driver and hexa- 
decimal LED display in one 



RIPPLE BLANKING INPUT 



_TL 

A > 



4 -BIT 

BINARY INPUTS 



B > 



C > 



D > 



STORE y 

DATA FOLLOWS INPUr 



LATCH ENABLE 



£_ 



♦ 5VDC 



16 



BLANKI N G INPUT/ 

RIPPLE BLANKING OUTPUT 



VCC 



AO 
Al 
A2 
A3 

EL 



GNO 



13 



]2_ 
n 

I0_ 
I 

m 



i4 



SEGMENT OUTPUTS 
TO DISPLAY 



9368 9369: SEGMENT OUTPUTS ARE ACTIVE "HIGH FOR COMMON" CATHODE LEDS 
9370 SEGMENT OUTPUTS ARE ACTIVE-LOW FOR COMMON-ANODE LEDS 



Fig. 3. 



A > 



4 -BIT BINARY INPUTS 



DATA STORED IN LATCH 
DATA FOLLOWS INPUTS 



DECIMAL POINT CATHODES 



J~L 



~L 



B > 



c y 

D > 



> 



LEFT > 



RIGHT > 



BLANKING 
DISPLAY ON 



"L 




DIALIGHT 745-0007 



Fig. 4. 



14-pin dip package. Fig. 4 
shows the pin connections. As 
my imagination conjures up a 
panel full of these, I come to 
a screeching halt at the price 
— $19 in single quantities. It's 
nice to dream, but that's a 
little out of my price range. 
Gee, there doesn't seem to 
be much else available to do 
what we want. But all is not 
lost. 

Home Brewers, Take Note 

Why not make a decoder/ 
driver? Sure. Use a PROM to 
convert a four-bit/binary in- 
put to the seven-segment out- 
puts needed to drive a seven- 
segment LED display. 

Let's take, for instance, 
the 82S23. It is a 256-bit 
Programmable Read Only 
Memory (PROM) arranged as 
32 words of eight bits, and it 
has open-collector outputs, a 
good choice for driving LED 
displays (see Fig. 5). A 
32-by-8 PROM has five 



address line inputs and eight 
data line outputs. Four of the 
five address lines (AO, A1, 
A2, A3) would be the four-bit 
binary inputs (A,B,C,D) 
needed. Seven of the eight 
data outputs would be the 
seven-segment driver outputs. 
Can we utilize the other 
lines? Let's see. Address line 
A4 selects either the first or 
last 16 words of eight bits in 
the PROM. If we programmed 
the hexadecimal decoder in 
the second half of the PROM 
(A4 at a logic 1) and all zeros 
in the first half, then pulling 
A4 from a logic 1 to a logic 
would cause all the segments 
to light, no matter what the 
code on AO through A3 when 
used as a common-anode 
driver. Line A4 then becomes 
our lamp test input. When 
used as a common-cathode 
driver, this would cause all 
segments to shut off. Line A4 
then becomes our blanking 
input. 



105 



CD 
X 

I 

C 


CD 
X 

I 




DATA IN BINARY 






C 












§ Address 


CD 
«-< 
CD 

Q 


B7 B6B5 B4 B3 B2 


B1 


BO 






Segment 






a 


b 


c d e f 


g 


DP 


00 

















thru 












OF 














10 


03 











1 


1 


11 


9F 


1 





111 


1 


1 


12 


25 








10 1 





1 


13 


0D 








11 





1 


14 


99 


1 





110 





1 


15 


49 





1 


10 





1 


16 


C1 





1 








1 


17 


1F 








111 


1 


1 


18 


01 














1 


19 


19 








110 





1 


1A 


11 








10 





1 


1B 


CO 


1 


1 











1C 


63 





1 


10 


1 


1 


1D 


84 


1 





1 








1E 


61 





1 


10 





1 


1F 


71 





1 


110 





1 



CD 
X 

a> 

X 

c 


CD 
X 

CD 

X 




DATA IN BINARY 




H 
03 

-a 
< 


c 

CD 

*-> 
CD 

Q 


B7 B6 B5 B4 B3 B2 B1 BO 


Segment 


a 


b 


c d e f 


g 


DP 


00 1 00 

















thru 












OF 














10 


FC 


1 


1 


1111 








11 


60 





1 


10 








12 


DA 


1 


1 


110 


1 





13 


F2 


1 


1 


110 


1 





14 


66 





1 


10 1 


1 





15 


B6 


1 





110 1 


1 





16 


3E 


1 





1111 


1 





17 


EO 


1 


1 


10 








18 


FE 


1 


1 


1111 


1 





19 


E6 


1 


1 


10 1 


1 





1A 


EE 


1 


1 


10 11 


1 





1B 


3F 








1111 


1 


1 


1C 


9C 


1 





111 








1D 


7B 





1 


1110 


1 


1 


1E 


9E 


1 





111 


1 





1F 


8E 


1 





11 


1 






Table 1. PROM coding to drive common-anode seven-segment LED 
displays. 



Table 2. PROM coding to drive common-cathode seven-segment LED 
displays. 



What effect does the chip 
enable input (CE) have? With 
CE at a logic 0, the data as 
addressed by A0 through A4 
will be seen at the data out- 
puts BO through B7. When 
CE is raised to a logic 1, the 
outputs are disabled (i.e., all 
collectors are open). The chip 
enable input then becomes 
our blanking input when the 
PROM is used as a common- 
anode driver. When used as a 
common-cathode driver, this 
is the lamp test input. 

Now, what do we program 
into the PROM? The digits of 



NOTE 



FOR COMMON ANODE 

A4 = LAMP TEST 
Cf= BLANKING INPUT 

FOR COMMON CATHODE 

A4= BLANKING INPUT 
CE ■ LAMP TEST 



Fig. 2(b) are a good choice. 
The only problem might be 
misreading the lowercase b as 
a 6 without the tail. My 
choice is the digit format of 
Fig. 2(d). This uses the BO 
data output line of the PROM 
to drive the decimal point in 
the LED display and turn it 
on for the lowercase b and d 
to clear up the ambiguity. 

All PROM coding listed in 
the tables is for the display 
format of Fig. 2(d). Segments 
are assigned as in Fig. 2(e). 
Table 1 is the PROM coding 
to drive common-anode 



NORMAL 
LAMP TEST 
BLANKING 



4-BIT A > 

BINARY B > 



DATA 
INPUTS 



SEE 

NOTE 

ABOVE 



C > 



D > 



\\> 



\> 




~L 

L. NORMAL 
—i NORMAL 

L BLANKINI 
-i LAMP TEST 



BLANKING 
LAMP TE 
NORMAL 



SEGMENT 

LINE 

OUTPUTS 



PIN CONNECTIONS FOR 
SIGNETICS 8223 B 82S23 
MMI 6330-I 
HARRIS 8256 



LEDs. Table 2 lists the PROM 
coding to drive common- 
cathode LEDs. Note that all 
addresses are in hexadecimal, 
and all data outputs are 
shown in both binary and 
hexadecimal formats. 

There are a number of 
256-bit, pin-for-pin com- 
patible PROMs available. 
Some of them are the Sig- 
netics 8223 and 82S23, the 
Harris 8256 and the MMI 
6330-1. These are pin-for-pin 
compatible in the read mode 
only. Each is programmed by 

DIGIT COMMON 



o 
b 
c 

d 

e 
f 



>- 



y 



y 



DP > 



a different method, so choose 
carefully. (If there is suf- 
ficient interest, I can arrange 
to provide programmed 
PROMs for a nominal fee.) 

The circuit of Fig. 5 is the 
required circuit configuration 
for using the PROM decoder 
to drive a seven-segment LED 
display. To display more than 
one digit requires either one 
decoder for each digit or a 
display multiplexer. 

Types of Display Multiplexers 

Using one decoder for each 

DIGIT COMMON 



N NUM8ER OF DIGITS 



Fig. 5. 



Fig. 6. LED interconnection in a multiplexed display. Note: be sure to 
include current-limit resistors where required (see Fig. 1). 



106 



INTERRUPT 

REQUEST 

LINE 



1000Hz 



"LTLTL 



CLOCK 



INTERRUPT 

REQUEST 

LINE 



IOOO Hz 



1_TL 



CLOCK 



DBUS7 

DBUS6 

DBUS5 

DBUS4 

DBUS3 

DBUS2 

DBUSI 

DBUSC 



WRITE 
STROBE 



DBUS7 

DBUS6 

DBUS5 

DBUS4 

DBUS3 

DBUS2 

DBUSI 

DBUSC 



WRITE 
STROBE 



> 



> 

>- 



J~L 



>- 

>- 
>- 



n 



>- 



74100, 

8212, 

2-74I75S, 

OR 

2-7475'S 

LATCH 



LATCH 

AS 

ABOVE 



■• DIGIT 7 

-♦ DIGIT 6 

— DIGIT 5 
-► DIGIT 4 
-*• DIGIT 3 
-» DIGIT 2 
-• DIGIT I 

— DIGI"T 



o 
b 
c 
d 

e 
f 

g 

DP 



DIGIT 
ENABLE 

OUTPUTS 

TO 

DIGIT 

DRIVERS 



SEGMENT 

LINE 

OUTPUTS 



Fig. 7. Minimal display multiplexer letting the uP do the multiplexing 
and binary-to-seven- segment conversion. 





N. 














7442 
c 74154 

74138 
R OR 
° 74139 

A DIGIT 

DECODER 








7475 

OR 

74175 

LATCH 


t 


DBUS7 

DBUS6 
DBUS5 
DBUS4 


V 






























* r 








i 


1 




WRITE 


_TL 






STROBE 


N. 




1 










D 

7-SEGMENT 
DECODER 

C PROM 

7447 — 
D 7449, 
9368-* 

A 937 ° 








7475 

OR 

74175 

LATCH 




DBUS3 












DBUS2 










— m 


DBUS! 


V 








DBUSO 




?— 

























DIGIT N 



UP TO 

16 

DIGITS 



DIGIT O 



a 
b 
c 

I 
e 
f 

9 
DP 



DIGIT 

ENABLE 

OUTPUTS 

TO 

DIGIT 

DRIVERS 



SEGMENT 

LINE 

OUTPUTS 



digit is economical only up Lo 
two or three digits. For more 
digits than that, it is less 
expensive to use a display 
multiplexer. The multiplexer 
saves not only components, 
but, since only one digit is on 
at a time, the maximum 
power consumption is that of 
or\« d\g'\t and the supporting 
circuitry. 

In the multiplexer config- 
uration, the segment lines of 
all LEDs are connected in 
parallel (see Fig. 6). The 
resultant segment bus is then 
driven by the appropriate 
decoder/driver. Each digit is 
enabled at the same time that 
that digit's seven-segment 
information is placed on the 
segment bus. By sequentially 
enabling each digit with its 
associated data on a rotating 
basis, the display will appear 
to be on continuously. With 
this arrangement, each digit 
must be refreshed at least a 
thousand times a second, i.e., 
at a 1000 Hz rate, to prevent 
a flickering display. 

The simplest type of dis- 
play multiplexer for use with 
a microprocessor (uP) would 
let the uP do the multiplexing 
and the binary-to-seven- 
segment conversion in soft- 
ware (see Fig. 7). The soft- 



ware conversion would reduce 
the hardware requrements but 
would increase the size of the 
software handler and the time 
needed to execute it. Note 
the clock connected to the 
interrupt line. The interrupt 
would cause the uP to jump 
to a subroutine that would 
service the display. It would 
change the digit address and 
its associated data at the 
1000 Hz rate. 

The next step in hardware 



CLOCK 



IOOO Hz 



DIGIT 7 



DBUS3 > 

DBUS2 >- 

DBUSI >■ 

DBUSO > 



DATA 

LATCH 

7475 

OR 

74I75 



WRITE 
STROBE > 
DIGIT 7 



Fig. 8. Adding the digit decoder and segment decoder in hardware cuts 
down software. uP still provides multiplexing function. 



complexity moves the 
binary-to-seven-segment con- 
version from software to 
hardware (see Fig. 8). This is 
where our PROM comes in. 
The same interrupt sequence 
would be used here, except 
that the actual four-bit binary 
data to be displayed would be 
loaded into the data latch 
instead of the converted 



seven-segment information. 

The next type of multi- 
plexer is the simplest from a 
software point of view (see 
Fig. 9). There is no refreshing 
necessary by the uP. All the 
uP need do is write the four- 
bit binary data into the ap- 
propriate data latch. The 
hardware then performs the 
multiplexing function. 



~LTU~L 



DIGIT 
COUNTER 

7493 

74I93 

74293 



DIGIT 7 



> 



ONE 

LATCH 
FOR 
EACH 
DIGIT 



DIGIT 



DBUS3 
DBUS2 
DBUSI 
DBUSO 






LATCH 

AS 

ABOVE 



WRITE 
STROBE > 
DIGIT 



DIGIT 



8-T0-I 
MULTIPLEXER 

74I5I 



DIGIT 
DECODER 
7442 
74I38 
74 1 39 



UP TO 
8 DIGITS 



DIGIT 

ENABLE 

OUTPUTS 

TO 

DIGIT 

DRIVERS 



BIT D 



ADDRESS 

FROM 

COUNTER 



DIGIT 7 



♦ ONE 
; MULTIPLEXER 
I FOR EACH 
i BIT 



DIGIT 



8-T0-I 
MULTIPLEXER 

7415I 



BIT A 



7-SEGMENT 

DECODER 

PROM 

7447-» 
7449 
OR 

9368 -♦ 
9370 



a 

b 
■c 
,4 

■ e 
• f 

•9 

■DP 



SEGMENT 

LINE 

OUTPUTS 



Fig. 9. Hardware multiplexer requires no refresh from uP. 



107 



CLOCK 



IOOO Hz 



i_n_n 



DBUS7 
0BUS6 
DBUS5 
DBUS4 
WRITE 
STROBE 



> 



IS 



DIGIT 
ADDRESS 
COUNTER 
74193 



STROBE 
TIMING 
74123 



DELAYED 
WRITE STROBE 



DBUS3 

DBUS2 

DBUSI 

DBUSO 



DATA IN 



A B C D 



DIGIT 

DECODER 

74154 

2-7442 

2-74138 



DIGIT 15 



DIGIT 



UP TO 
16 DIGITS 



DIGIT 

ENABLE 

OUTPUTS 

TO 

DIGIT 

DRIVERS 



RAM 

(SCRATCH 

PAD 

MEMORY) 

7489 

OR 

3101 



DATA OUT 



7-SEGMENT 
DECODER 

PROM 

7447-* 

7449, 

OR 

9368-* 

9370 



-*■ a 

♦ b 

♦ c 



-»■ e 
-► f 

♦ g 



SEGMENT 

LINE 

OUTPUTS 



DP 



Fig. 10. More digits — less hardware/ Optimum display multiplexer for use with a uP. 



The multiplexer of Fig. 10 
is better yet. It uses less hard- 
ware. The memory latch (the 
7489 or 3101 scratchpad 
memory), arranged in 16 
words of four bits, will store 
and multiplex 16 digits of 
information all in one 16-pin 
package. This circuit is 
especially nice for driving 
from a uP's eight-bit parallel 
port and can be used for any 
number of digits up to 16. 

Actual construction details 
for display multiplexers have 
been adequately covered in 
recent literature and will not 
be repeated here. So, I only 
briefly described some of the 
various methods for display 
multiplexing. Refer to 73 
Magazine, June 1977, and 
Byte, March 1977, for further 
details. 

The IC type numbers 
shown in Figs. 7, 8, 9 and 10 
are suggestions to illustrate 
the function of that block. 
Actual pin connections are 
left up to you. The references 
made above detail several 
multiplexers. 

Applications (Blue-Skying!) 

Now that you know how 
this fantastically economical 
hardware works, what can 
you use it for? This is where a 
good imagination really pays 
off. 

Look at Fig. 11(a). This 
could be the intelligent front 



panel of your microcomputer. 
In addition to displaying the 
current address and its data, 
you get an auxiliary display 
of 16 bits (four digits) and a 
six-digit real-time clock dis- 
play using only one 16-digit 
display multiplexer. 

How about the panel 
shown in Fig. 1 1 (b)? Here, all 
in one place in an easy-to-read 
format, is temperature (from 
any number of sensors) in 
either Celsius or Fahrenheit 
(or Kelvin?), percent of rela- 
tive humidity, wind speed 
and direction, and a real-time 
clock all under processor con- 
trol and using only one 16- 
digit multiplexer and 
memory. This idea could be 



expanded to include the 
monitoring of the efficiency 
of your solar heating system! 

Fig. 11(c) could be the 
status panel for an amateur 
radio operator who works 
through the Oscar satellite or 
receives weather data from 
the NOAA weather satellites. 
Here the displays show Uni- 
versal Coordinated Time (UTC 
or GMT), the amount of 
time since the satellite crossed 
the equator (in minutes and 
seconds) and the azimuth and 
elevation of the antenna to 
work through the satellite. 
Note the .bO on the elevation 
display. The .b could denote 
that the satellite is currently 
below the horizon and the 0, 



the current elevation limit of 
the antenna. A rotary switch 
on the panel could also in- 
struct the uP to display the 
time of any time zone under 
software control. The panel 
could be reconfigured 
instantly at any time. Ex- 
tending this a little with a 
second display multiplexer to 
include displays for Right 
Ascension, Declination, Local 
Hour Angle and Sidereal Time 
would complete the control 
panel for astronomy and 
moon-bounce applications. 
The next application is a 
little more futuristic — a 
digital automobile dashboard 
— see Fig. 11(d). Data dis- 
played could include: speed, 
mileage (odometer), trip mile- 
age, fuel level (in percent of 
capacity), temperature (of 
engine, transmission, rear 
axle), engine oil pressure, 
alternator current and a real- 
time display of miles per 
gallon. Of course, time would 
be included (with the switch 
to choose the time zone) and 
another switch could select 
readings to be in either the 
English or metric numbering 
system. 

I hope I've jogged your 
imagination into high gear — 
there are more real-time ap- 
plications for this small 
amount of hardware (for $25 
or less) than any one of us 
could possibly conjure up. 
Send them in so we can all 
benefit. Happy computing! ■ 



(A) 





COMPUTER STATUS DISPLAY 














I I 


■45=07 






ADDRE! 


II 


TIME 


DATA 






D 2 4 A 




7 C 






AUX DISPLAY 










5 B 6 F 


COMPUTER 













(C) 



SATELLITE TRACKING CONTROL PANEL 









PST 




ZONE 
SELECT 




18 3 6 2 9 


EOT ^v 
EST^>> 
UT ^~^ 




TIME 




-19:43 






T 
E 


IME SINCE f UNTIL 
QUATORIAL CROSSING 








2 5 9 


O 


• b 


O 




AZIMUTH 




ELEVATION 





(B) 



HOME ENVIRONMENTAL STATUS DISPLAY 










II 4 5 07 




SENSOR 




TIME 








\h * 


7 2 F 


O 


1 5 


KNOTS 
KM/S 
MPH 
3 


EMPERATUR 


E 1 


WIND SPEE 





6 5 


% 


3 









RELATIVE 
HUMIDITY 




WIND 
DIRECTION 





(D) 



AUTOMOBILE DASH 



















1 9 5 




5 5 




8 


% 




TEMP 




SPEED 




FUEL 






5 




14 5 5 0.6 




! 1 5 






OIL 
PRESSURE 




ODOMETER 




AMMETER 






2 3 5.6 


ENGLISH ,- 

METRIC s / 




TRIPOMETER 










10 4 5 6 




3 6 










TIME 




MPG 





Fig. 1 1. Application ideas. 



108 



ELECTRONIC SYSTEMS 

P.O. Box 9641 San Jose CA 95157 

(408) 374-5984 




llllll 

UART 

& BAUD 

RATE 

GENERATOR 

Part no. 101 

• Converts serial to parallel and 

parallel to serial 

• Low cost on board baud rate 
generator 

• Baud rates: 110, 150, 
300, 600, 1200, and 2400 

• Low power drain +5 volts and 
-12 volts required 

• TTL compatible 

• All characters contain a start 
bit, 5 to 8 data bits, 1 or 2 stop 
bits, and either odd or even 
parity. 

• All connections go to a 44 pin 
gold plated edge connector 

• Board only $12.00; with parts 
$35.00 



8K 

STATIC 

RAM 




Part no. 300 

• 8K Altair bus memory 

• Uses 2102 Static memory chips 

• Memory protect 

• Gold contacts 

• Wait states 

• On board regulator 

• S- 100 bus compatible 

• Vector input option 

• TRI state buffered 

• Board only $22.50; with parts 



$160.00 



To Order: 



RS- 2 32 /TTL 
INTERFACE 



r- t L '<itf m 




Part no. 232 

• Converts TTL to RS-232, and 
converts RS-232 to TTL 

• Two separate circuits 

• Requires -12 and +12 volts 

• All connections go to a 10 pin 
gold plated edge connector 

• Board only $4.50; with parts 
$7.00 




DC 

POWER 
SUPPLY 

Part no. 6085 

• Board supplies a regulated +5 
volts at 3 amps., +12,-12, and -5 
volts at 1 amp. 

• Circuit has filters, rectifiers, 
and regulators. 

• Power required is 8 volts AC at 
3 amps., and 24 volts AC C.T. at 
1.5 amps. 

• Board only $12.50 



TIDMA 



Part no. 112 

• Tape Interface Direct Memory 
Access 

• Record and play programs with- 
out bootstrap loader (no prom) 
has FSK encoder /decoder for 
direct connections to low cost 
recorder at 625 baud rate, and 
direct connections for inputs and 
outputs to a digital recorder at 
any baud rate. 

• S 11)11 bus compatible 

• Board only $35.00; 
with parts $110.00 








Part no. Ill 

TAPE 
INTERFACE 

• Play and record Kansas City 
Standard tapes 

• Converts a low cost tape 
recorder to a digital recorder 

• Works up to 1200 baud 

• Digital in and out are TTL-serial 

• Output of board connects to 
mic. in of recorder 

• Earphone of recorder connects 
to input on board 

• Requires +5 volts, low power 
drain 

• Board $7.60; with parts $27.50 

• No coils 

Part 
no. 107 

RF 
MODULATOR 

• Converts video to AM modu- 
lated RF, Channels 2 or 3 

• Power required is 1 2 volts AC 
C.T., or +5 volts DC 

• Board $7.60; with parts $13.50 

Apple II 
Serial I-O 
Interface 

Part No. 2 

• Baud rates up to 30,000 

• Plugs into Apple Peripheral 
connector 

• Low-current drain 

• RS-232 Input and Output 

SOFTWARE 

• Input and Output routine from 
monitor or BASIC to teletype or 
other serial printer. 

• Program for using an Apple II 
for a video or an intelligent ter- 
minal. Board only — $15.00; 
with parts — $42.00; assembled 
and tested - $62.00. 




TELEVISION 
TYPEWRITER 




Part no. 106 

• Stand alone TVT 

• 32 char/line, 16 lines, modifi- 
cations for 64 char /line included 

• Parallel ASCII (TTL) input 

• Video output 

• 1 K on board memory 

• Output for computer con- 
trolled curser 

• Auto scroll 

• Non-distructive curser 

• Curser inputs: up, down, left, 
right, home, EOL, EOS 

• Scroll up, down 

• Requires +5 volts at 1 .5 amps, 
and 12 volts at 30 m A 

• Board only $39.00; with parts 
$145.00 



MODEM 




Part no. 109 

• Type 103 

• Full or half duplex 

• Works up to 300 baud 

• Originate or Answer 

• No coils, only low cost com- 
ponents 

• TTL input and output-serial 

• Connect 8 ohm speaker and 
crystal mic. directly to board 

• Uses XR FSK demodulator 

• Requires +5 volts 

• Board $7.60; with parts $27.50 




Mention part number and description. For parts kits add "A" to part number. Shipping paid for orders 
accompanied by check, money order, or Master Charge, BankAmericard, or VISA number, expiration 
date and signature. Shipping charges added to C.O.D. orders. California residents add 6.5% for tax. 
Parts kits include sockets for all ICs, components, and circuit board. Documentation is included with 
all products. Dealer inquiries invited. 24 Hour Order Line: (408) 374-5984. E21 



• 09 



Ken Barbier 

Borrego Engineering 

PO Box 1253 

Borrego Springs CA 92004 

Build a 
Touch 




nse Display 



an advance in human engineering 




Photo 1. The computer idles, producing a random pattern of black-and-white spaces. Pressing any 
key will interrupt this background display and call up a game display. 



Captain Kirk was alone, 
strapped into the Explora- 
tion Module. On a screen 
before him was displayed the 
star field through which he was 
traveling. 

Suddenly, in the upper right 
corner of the display, a bright 
circle appeared around one of 
the dots of light. The on-board 
computer had detected an im- 
age that didn't fit the 
characteristics of any known 
celestial object. Kirk placed his 



Photos by Dave Rosenbush. 

Computer operator: Louise 
Kue/imer. 



fingertip lightly within the cir- 
cle and moved it to the center 
of the screen. The image 
followed his finger. When the 
circle was centered in the 
screen, he drew a small box 
around it with his finger. In- 
stantly that area was expand- 
ed to fill the entire screen. Sure 
enough, the dot could now be 
identified as a Klingon war 
cruiser. 

At the lower edge of the 
screen, several computer com- 
mand legends were displayed. 
Kirk touched three of them in 
turn: RED ALERT, HOSTILE 
VESSEL and EMERGENCY 
RETURN. Then he sat back and 
relaxed as the on-board brain 
relayed his red-alert command 



and the identification and coor- 
dinates of the intruder back to 
the Enterprise. The computer 
then automatically reversed 
the module's course at max- 
imum speed to return to the 
safety of the starship. 

Back to the Real World 

This scene would never ap- 
pear on the TV show. Not 
enough shouting and arguing 
and human activity. Too many 
actions can be accomplished 
in too short a time for the 
viewers to follow. It's hardly TV 
material. 

Back in the real world, touch- 
response displays have been 
developed and may shortly ap- 
pear on the market. But not at 



a hobbyist budget level. A 
transparent plate in front of a 
CRT containing a grid of fine 
wires (similar to the X and Y ad- 
dress lines of a core memory 
plane) can detect the electrical 
noise produced by a fingertip 
touching the intersection of 
two wires. The computer, 
knowing what it has displayed 
at that location, can then deter- 
mine that the human operator 
has made that particular selec- 
tion. One such selection can 
then call up another display, 
with a new set of options for 
the operator. This touch- 
response display technique 
could find unlimited applica- 
tion. We will mention a few 

later. 

Light pens are available, of 

course, to enable an operator 
to designate a particular spot 
on a CRT display. But light 
pens are not inexpensive and 
require extensive support hard- 
ware to translate the time of 
occurrence of a flash of light 
(as the raster-scanned bright 
dot passes the pen) into mean- 
ingful screen coordinates. 
Knowing that neither tech- 
nique would be within my hob- 
by budget, but wanting some 
form of man-machine com- 
munication that a child or non- 
typist could use, I developed 
the (almost) touch-response TV 
display described below. 

Using the Touch-response 
Keys 

Louise is ready to play a 
game of Battleship, with my 
computer as an opponent. As 
shown in Photo 1, before the 
game starts, a random pattern 
of black-and-white spaces is 
displayed on the TV screen. 
This pattern is generated by 
the game program random 
number generator and is up- 
dated several times a second 
to produce a constantly chang- 
ing display. This keeps the ran- 
dom number generator running 
so that it doesn't start at the 
same place every game, and 
also prevents any static 
display image that could burn 
itself into the phosphors on the 
face of the TV tube. (Software 
random number generators are 
not truly random, and will pro- 
duce the same sequence of 



110 



numbers over and over.) To 
begin play, Louise will press 
any one of the eight push- 
button switches attached to 
the bottom of the TV screen. 

The eight switches are con- 
nected to the computer 
through a single 8-bit input 
port, as shown in Fig. 1. The In- 
tel 8080 program listing 
(Program A) is a subroutine 
that wvW return an 8-bit image 
of the eight switches to the 
calling program whenever a 
switch is pressed and re- 
leased. Using software to pro- 
vide switch debounce 
simplifies the hardware. 

Having interrupted the 
background display, and 
therefore informed the com- 
puter that Louise is ready to try 
to search out a hidden bat- 
tleship, she is presented with 
the display shown in Photo 2. 
An eight-by-eight cell grid is 
formed by vertical columns of 
Is and horizontal rows of 



SWITCH 
PANEL 



RIBBON CABLE 



PORT 


EQU 




; SET TO PORT ADDRESS 




ORG 




; SET TO START LOCATION 


PBSW 


IN 


PORT 


; ANY SWITCH PUSHED? 




CMA 




; INVERT BITS 




ANI 


OFFH 


; TEST FOR ALL ZEROS 




JZ 


PBSW 


; NO ONES, WAIT 




MVI 


A,OFFH 


; GOT ONE, SET UP 


PBSW1 


DCR 


A 


; A DELAY LOOP 




JNZ 


PBSW1 






IN 


PORT 


; READ SWITCHES AGAIN 




CMA 








ANI 


OFFH 


; STILL PUSHED? 




JZ 


PBSW 


; NO, START ALL OVER 




PUSH 


PSW 


; YES, SAVE DATA 


PBSW2 


IN 


PORT 


; WAIT FOR END OF 




CMA 




; SWITCH CLOSURE 




ANI 


OFFH 






JNZ 


PBSW2 






MVI 


A,OFFH 


; AND DELAY AGAIN 


PBSW3 


DCR 


A 






JNZ 


PBSW3 






POP 


PSW 


; RESTORE SWITCH IMAGE 




RET 




; AND RETURN 




END 







Program A. Switch Read Subroutine. Written in Intel 8080 assembly language, this subroutine will 
read the switches, provide switch debouncing with a delay loop and return to the calling program 
with an image of the switches in the A register. 



underlines. Each cell is iden- 
tified by a numbered X coor- 
dinate and a lettered Y coor- 



COMPUTER 



♦ 5V 



COMPUTER 
DATA BUS 



♦ 5V 



♦5V 



♦5V 



♦ 5V 
A 



♦ 5V 



5V 



♦ 5V 



PULL-UP 
RESISTORS 
470fl (8) 



1 




ADDRESS DECODE 



1 


INPUT — £<J 


2 


DIEN — ^4. 


i 


7430 


4 


-y — u 


5 


6 


/ 


1 1 




12 





4> 



Fig. 1. Schematic diagram. The normally open push-button 
switches are input to the data bus "low true," so the A register 
will have to be complemented. The inputs to the 7430 will be con- 
nected to the address bus directly or through inverters to set up a 
particular port address. 



dinate. Somewhere in this grid 
of 64 cells is hidden a bat- 
tleship consisting of three 
cells in a vertical, horizontal or 
diagonal line. Louise decides 
to try firing a shot at the cell 
identified by an X coordinate of 
5, Y coordinate of C. 

At this point, it would cer- 
tainly be nice to enable her to 
select this spot by touching it 
on the screen. At the other ex- 
treme, we could compel her to 
search out the characters 5 
and C on a keyboard in the cor- 
rect sequence. If she were not 
a typist this alternative would 



not make any points with her; 
she might soon tire of this and 
any other games we had in 
mind. That wouldn't do! 

In Photo 2, the computer is 
asking her to select an X coor- 
dinate from among the choices 
displayed above the row of 
switches. No chance for confu- 
sion here, as the switch 
legends displayed correspond 
exactly with the identifications 
displayed above each column 
of the grid. So Louise presses 
the 5 switch. 

Instantly the display 
changes to that shown in 




Photo 2. The operator is asked to enter the horizontal (X) coor- 
dinate of the cell he or she wishes to shoot at. The switch legends 
correspond to the positions along the X axis. 



111 




Photo 3. The Y coordinate is requested, and the switch legends 
are changed accordingly. 



Photo 3. She is now asked for 
the Y coordinate, and the 
switch legends have been 
changed to the letters (A to H) 
corresponding to the iden- 
tifications on each row of the 
grid above. So she presses the 
C switch. 

Just in case she might have 
changed her mind, or pressed 
the wrong switch, the com- 
puter will give Louise a chance 
to take back her move. Her 
choices are shown in the next 
display (Photo 4), and she has 
the option of entering the play 
or changing it. If she presses 
the CHANGE switch, the pro- 
gram reverts back to the 
display of Photo 2, and she can 
start this move over again. If 
she is happy with her selec- 
tion, she presses PLAY, and 



the computer records her move 
as either a hit or a miss. 

The display shown in Photo 
5 is a later stage in another bat- 
tleship game, with a hit shown 
in cell 6/F, and a miss (the light 
shading) shown in cell 2/C. The 
game will continue until three 
hits in a row are recorded. At 
this point, the switch options 
NEXT PLAYER, or NEW 
GAME?, or DONE?, or whatever 
your program would require as 
the next operator input, could 
be programmed into the game. 

Battleship on an 8-by-8 grid 
is a rather trivial game and is 
used here only to demonstrate 
the technique of the touch- 
response display. A million 
ideas are probably already 
springing to life in our 
brains— if time would only 





Photo 4. The X and Y selections are displayed, and the player has 
the option of entering the shot or requesting the opportunity to 
change the selection. Pressing CHG (for change) would cause a 
repeat of the display shown in Photo 2. 



Photo 5. Two shots have been entered. The one at cell 6/F is seen 
to be a hit. The shot at cell 2/C rr> ssed the target. 



permit their development! 
Checkers and chess obviously 
fit the 8-by-8 grid. Expanding 
the number of switches to ten 
would permit the input of 
decimal digits to any program 
requiring them — a game, a 
calculator or an accounting 
program. For the latter two, a 
string of digits could be input 
through the ten switches, and 
when we have the complete 
number entered we could 
signal the fact to the computer 
by pressing two switches at 
once. A calculator program 
could then respond by chang- 
ing the switch functions and 
legends to ADD SUB MULT DIV 
= etc. 

Or, how about a program 
displaying a blank screen, with 
a cursor positioned dead 
center, and switch legends of: 
UP DOWN RIGHT LEFT BLACK 
WHITE ERASE EXIT? Now we 
can draw pictures, moving the 
cursor with the first four 
switches, drawing a black or 
white space at that position 
and moving on. The whole 
screen could be erased to start 
over, or an exit made to 
another game. 

Since we are going to have a 
number of programs available 
that can use this display and 
switches, perhaps the first 
display following the random 
background should be a list of 
available programs, with each 
key assigned to a different pro- 



gram. Then we could call up 
Battleship, or Calculator, or 
Checkers, or Chess, or Tick- 
tacktoe. The options are 
limited only by our imagina- 
tions. 

Human Engineering 

Devising better means to 
allow untrained or unskilled 
humans to communicate with 
our computers is a much- 
neglected art. The science of 
implementing usable inter- 
faces is called human 
engineering. 

Human engineering is too 
often lacking in the design of 
computer systems, their 
operating systems and ap- 
plications programs. Human 
engineering is also lacking in 
hobby computer games pro- 
grams where non-typists are 
compelled to use a TTY 
keyboard to make a few simple 
selections. Here we have an 
alternative: a little bit of hard- 
ware and a lot of software to 
drive the display will permit 
anyone who can read, or even 
anyone who can learn the use 
of a few symbols, to utilize the 
power of our computers, vir- 
tually without any training. 

That is real human engineer- 
ing, at the level of the man- 
machine interface. And who 
knows? The human engineer- 
ing groundwork we lay today 
may someday enable Captain 
Kirk to escape the Klingons! ■ 



112 



16K 



S-100 
STATIC RAM 

*295 



• FULLY STATIC (Not Pseudo Static) 

• PHANTOM DISABLE (A16) 

• MWRT OR PWR 

• FULLY BUFFERED 

• 128-2102L1PCS 

• 400NS GUARANTEED (250NS TYP.) 

• ASSEMBLED/BURNT-IN 

• 90-DAY GUARANTEE 

Also: 

8K STATIC RAM 
2102L1PC 



$ 155 
$ 1.40 



Calif Residents add 6% 




(714) 751-7341 



Master Charge & Visa welcome 

P.O. BOX 17296 
IRVINE, CA. 92713 

G15 



RO-CHE Systems 

MULTI-CASSETTE 
CONTROLLER 



MITI-CISSCTE CNTMILU 

In Imk lut« la 



• Read and write records from and to up to 4 
cassette recorders with one Tarbell Cassette 
Interface. 

• Included software handles Assembly Lan- 
guage and BASIC. 

• File Maintenance System and Text Editor 
available. 

Write for brochure: 

ROCHE Systems R16 

7101 Mammoth Avenue 
Van Nuys, California 91405 




Canadian 

8K MEMORY KITS 



Low Power. 500NS, SI 00 BUS 
On-Board Regulation, No Duty 
Prime Quality. First Run 2 1 LO 2 ICs 
WAMECO PC Board. SST Included 
Full Documentation. Tl Sockets 
Solder Mask 

Price . . . $219.95 (Canadian) 



CHX 



VISA 



CHARGEX & VISA 
HONORED 



'tnc. 



Mail orders to: /W797CA 

ORTHON COMPUTERS 

12411 Stony Plain Rd 

Edmonton, Alberta Canada T5N3N3 

08 



I 



For KILOBAUD readers who 
have experienced difficulties 
with Associated Electronics or 

had problems contacting them, 
their address is: 



ASSOCIATED ELECTRONICS 

12444 Lambert Circle 

Garden Grove, CA 92641 

(714) 539-0735 



A VERY GRAPHIC 
DEMONSTRATION : 




GDT-O is a graphics card designed to interface with the Altair 8800 
bus. It creates a one-to-one map between its 3k of (completely 
addressable) on-card memory and the generated high-resolution 
video display ( 1 28 H x 1 92 V). GDT-0 is easily programmed and can 
be used with BASIC as well as machine languages. Numerous 
programs are available, including universal- curve- and bargraph 
plotting, as well as programs for business applications. GDT-0 is 
available for immediate delivery, completely assembled and 
burned-in, for only $295. Write for complete information. 




MICRO 

PRODUCTS CORPORATION 



56 Sicker Road, Latham, New York 12110 

518/783-0813 



D26 



113 



Dave Lien 

8662 Dent Dr. 

San Diego C A 92119 

Dave Waterman 
834 Oak Lee Ln. 
Alpine CA 92001 



Turn It Off! 

power-down mod 
for the TRS-80 



This article details a simple, 
but useful, modification to the 
TRS-80. One of the authors, 
Dave Lien, will soon be contrib- 
uting regularly to a column in 
Kilobaud about the TRS-80. 
—John. 



It is in the best tradition of 
experimenting that owners of 
electronics equipment (or most 
anything) are not content with 
something the way it left the 
factory. With the advent of 
high-priced commercial equip- 
ment, experimenters have 
become increasingly reluctant 



to make changes. Here, how- 
ever, is a nice simple modifica- 
tion to the Radio Shack TRS-80 
video monitor that's almost im- 
possible to goof up. It's an ideai 
"first" foray into the computer 
hardware thicket. Besides be- 
ing a useful and inexpensive 
modification, it helps relieve 
the fear of peeking into the box 
to see what you've bought. 

Why Mess with Success? 

As furnished, the TRS-80 re- 
quires three 120 V outlets, one 
of them polarized. Once the ex- 
ternal power supply is plugged 



in it stays on forever, using a 
small amount of electricity 
even when the computer is 
turned off. The computer's 
on/off switch does not turn off 
the power supply. People con- 
cerned with turning everything 
completely off when leaving 
the house, particularly consid- 
ering the unhappy history of 
some "instant on" TV set fires, 
will want to have a handier way 
to turn off the entire computer 
system than having to push 
switches and unplug com- 
ponents. As luck would have it, 
the TRS-80 can be easily 



modified for single-switch 
on/off power control, the push- 
button switch on the monitor 
controlling the entire system 
(see Photo 1). It costs less than 
a dollar and takes 15 minutes to 
make operable. 

Scalpel . . . 

Unplug everything. Remove 
the five screws from the back 
cover of the video monitor, and 
carefully pull off the cover. Us- 
ing a nibbling tool, drill and 
pocket knife, blowtorch, jack- 
hammer or whatever is handy, 
cut a neat hole in the cover to fit 
a single 120 V chassis mount 
socket. Position the socket as 
shown so a three-port cube tap 
will fit, with good clearance in 
all directions. 

It's important to note that 
there are two common cube-tap 
configurations. Look carefully 
at the relation between the plug 
tangs and the socket slots on 
the cube tap shown in Photo 2. 
The other kind of tap has the 
plug and sockets offset 90 
degrees from each other. Bet 
you never noticed. The local 
drug store, grocery or harware 
store will generally carry both 
kinds. Obviously, the other kind 
would not allow all three tap 
outlets to be accessible with 
the socket positioned as it is. 

Soldering Iron . . . 

Mount the socket in place 
with two machine screws. Cut a 
12 inch piece of ordinary lamp 
cord, and strip about 3/8 inch of 





Photo 1. Radio Shack TRS-80 video display monitor. 



Photo 2. Back panel of TRS-80 with cube tap installed. 



114 



AC LINE CORD 



AC POWER 
RECEPTACLE 




IA FUSE 



Fig. 1. Schematic for power-switch modification. 



insulation off both wires on 
both ends. Tin all four ends, 
assuming you want to do this 
job right. 

Solder the two wires on one 
end to the terminal lugs, and 
the other ends of the two wires 
to the receptacle as shown in 
Fig. 1 and the close-up photo in 
Photo 3. Before you put the 
back cover in place, insert the 
four mounting screws into the 
sockets at each corner of the 



lid. (See how easy this is.) 

Tuck the extra length of lamp 
cord out of the way and fit the 
back cover into place. Tighten 
the four corner screws and 
replace the back chassis- 
mount screw. 

Putting it to Work 

Plug the cube tap into the 
new outlet in the back cover. 
Plug the TRS-80 power supply 
and the cassette recorder into 




Photo 3. The picture-tube socket is unplugged here to make the 
wiring easier to follow. It is not necessary to unplug it to make the 
modification. 



the cube tap. Plug the moni- 
tor's polarized plug into the 
wall outlet. Push the compu- 
ter's power switch to the ON 
position. It will be left on since 
now everything will be 
switched at the monitor. Turn 
the monitor on and watch for 



the red light on the computer to 
light, the monitor screen to 
light up and the recorder to run 
when you tell it to. 

Once you use this simple 
one-switch hookup, you'll 
wonder why you didn't think of 
it sooner. ■ 



f" Products that make your computer useful""! 



EXTEND... 





Whether for troubleshooting or analysis, if you have an 
S-100 machine at some point you will need our Extender 
Board with Logic Probe Kit ($35). The logic probe makes it 
easy to see which signals are going where . . . our special 
edge connector provides easy clip lead probing, jumper links 
in supply lines allow for fusing/current measurement/shut- 
down independent of system, and a non-skid needlepoint 
probe helps prevent accidental shorting. As with other 
Mullen kits, you also have quality parts, detailed instructions, 
and a realistic price. 



CONTROL ! 



CAVE 

* ■ 





(Ot* 


3 


. if (r 


T i 


J /h mm . / 


mm 



! - 

III 



"1" 

I 1 I 



y '•"mi V s 



J 




1 




• 






1 11" 

Ka U ft S MUllfM 



mmmm 

The Altair/S-100 compatible Relay/Opto-Isolator Control 
Board Kit ($117) is a natural for controlling audio systems, 
(ime lapse photography experiments, model trains, robot 
devices, or any application where you need a number of in- 
telligent switches . . . more uses are discovered daily, as 
detailed in our applications notes. 8 reed relays respond to an 
8 bit word from your computer; 8 opto-isolators accept an 8 
bit word from the outside world and send it back to your 
machine for handshaking or further control purposes. In- 
cludes detailed instructions. 



MULLEN COMPUTER 



BOX 6214, HAYWARD, CA 94545 



BOARDS! 



M32 



Available by direct mail 
(shipped ppd. in USA from 
stock; Cal res add tax) or at 
many fine computer stores 
^Dealer inquiries invited. 



r at 
res. 



115 



Finally: 8080 Meets 

the Fairchild Video Game 




The Innards. Just look at all the goodies. Forty TTL and CMOS ICs 
along with a bunch of other neat stuff including a DIP resistor package, 
some push-button switches, regulators, rf oscillator (in the shield), 
3.579 MHz crystals, etc. Everything plugs into filters and connectors. 



Jim Huffman 

Hufco 

PO Box 357 

Provo UT 84601 



I recently purchased one of 
Fairchild's F8 Micro- 
processor video games. I 
thought you'd be interested 
to know what we found here 
at HUFCO by dissecting my 
unit and through several con- 
versations with various people 
at Fairchild. Amazingly, we 
found that it is possible to 
use the Fairchild F8 Micro- 
processor controlled video 
game as a color video display 
for some pretty impressive 



graphics. In fact, they are 
interfacing one to an 8080 
bus right now and will release 
full conversion data in a 
month or so. The insides of 
this $1 50 video game are very 
impressive. There's an F8 
Microprocessor chip and two 
PSUs (Program Storage Units) 
or factory mask programmed 
ROMs. They contain the 
operating system and two 
video games which are 
supplied (built into the 
basic unit). The operating 
system and the two games are 
distributed within the chips 
so that it would be impossible 
to replace one of the PSUs 
with another which contained 
new video games. There were 
a couple of sockets on our 



unit. These were used for 
testing and production check- 
out. Also, our particular unit 
(an early model) had a few 
strange interconnections on 
it. In several places the PC 
tracks had been cut and 
rewired and in one place the 
track had been cut and a 
jumper wire which bridged 
several other tracks was 
added. Additional ferrite 
filtering was included on the 
+5 and +12 lines. The filters 
had been added by breaking 
the existing PC tracks. A tip 
— be careful when looking 
around in there — there are 
CMOS circuits as well as 
74LS and standard TTL 
circuits. Static damage could 
result to the CMOS circuits. 
The dissected unit is 
shown in the photo. There 
were paper tags on the F8 
Microprocessor and the two 
PSU chips so that we could 
keep track of which was 
which as we traced the inter- 
connecting wiring. At first 
glance, we thought we had a 
three chip system, one with 
the static memory interface 
IC. We found the power pin 
interconnections were such 
that there is a single CPU chip 
and the two PSUs. Behind the 
program storage units are the 
4K dynamic RAMs used for 
display refresh. They are Fair- 
child number 9023, a number 
that is not yet given in any 
Fairchild data books. Two 
memory chips on two planes 
are used to decode color. 
Only 6K of the remaining 8K 



are used to create the actual 
display; 2K are wasted. 

The next point of interest 
is shown on top of the stack 
in the photo. This card- 
reader-like device is the 
cartridge interconnect that 
allows the cartridge held 
video games to be plugged 
into the main unit. There are 
enough pins available to the 
experimenter to allow inter- 
face of more PSU and static 
memory interface chips for 
adding external memory or 
for interfacing to a memory 
slot on a processor. A look at 
the outputs that are available 
through the cartridge inter- 
connect will give you an idea 
of the great potential of this 
video game. There are eight 
data lines, five ROM control 
lines, an IRQ interrupt, two 
clock terminals (<I> and write) 
and finally, +5, +12, and 
ground. 

Doing something other 
than playing video games 
with this video game should 
be a piece of cake. For a 
stand-alone system, a Fair- 
bug/Fairchild operating 
system stored on a PSU is 
available for only $13.90 in 
single quantities from your 
nearest Fairchild distributor. 
Using the program listing as 
in Fairbug there would be an 
I/O assignment conflict, i.e., 
Fairbug uses I/O ports four 
and five, and so does the 
video entertainment system. 
You could add the static 
memory interface and some 
I/O level translators (such as 



116 







The pile. Here are all the major subassemblies of the main unit. From 
its appealing smoked Plexiglas cover to the two 8-direction control 
handles, the unit has class. It looks just as good on the inside, too. 



A Videocart undressed. Here is one of the famous videocarts with its 
two ROMs containing four games. It has a small spring door to keep the 
contact fingers away from human fingers. 



converting RS232 to TTL) 
and you would be able to 
have a stand-alone full F8 
Microcomputer system. 

For a color video display 
circuit look to the Xetron 
division of Fairchild. They 
are the ones responsible for 
developing the software 
games. They also have in their 
possession complete informa- 
tion for interfacing the F8 
video game to an 8080 micro- 
processor system. Obviously, 
enterprising 6800 owners 
could also use it. 

The graphics display is 
color with an approximate 96 
x 64 display matrix. If you've 
ever seen one of these babies 
in action, you know about its 
capabilities. It prints colored 
playing courts on the screen 
with different colored back- 
grounds as well as movable 
playing pieces. The alpha- 



numerics on the bottom of 
the screen look good too. The 
characters are quite high and 
legible and because it's done 
in graphics, you could even 
display Japanese or hiero- 
glyphics. 

Let's face it — it's a full- 
colored intelligent graphics 
display for only $180. This 
could be the last of the big- 
time bargains!! Judging from 
the component count as you 
can from the picture, I highly 
doubt Fairchild will be able 
to drop the price of this video 
game very much over the 
next few months, so now is 
probably as good a time as 
any to buy one and start 
working on it. Think of the 
possibilities of producing 
your own video games. Dis- 
secting one of the video game 
cartridges showed that all it 
contained was two PSUs and 



these obviously had the four 
games that were included in 
that cartridge. By interfacing 
some EPROMs or RAMs 
through cartridge contacts, 
you would be able to run 
your own video games. Think 
of it — Lunar Landers with 
spaceships, Tank with several 
simultaneous playing pieces, 
and so on. There have been a 
good many articles written on 
graphic display and how to 
handle the mechanics of 
building a fixed background 
with movable objects. 
Possibly, with some dubious 
experimenting on your part, 
you'll be able to come up 
with a "Fairops" or 
"Gameops" brand new video 
game operating system 
written for the Fairchild F8 
video game. 

At the time of this writing, 
the schematic diagram of this 



game was not available. But 
by the time you read this 
article it's very likely that a 
complete schematic of the 
video game will be available, 
and then you'll be able to 
analyze what's going on in 
and around the microproces- 
sor controlled game with very 
little difficulty. Also, Fair- 
child's release of full data on 
interconnecting F8 video 
game to the 8080 bus at some 
point in time in the near 
future will be invaluable to 
the serious computerist. 

If you're interested in this 
and want more information, 
Mike Williams at Fairchild 
Xetron (3105 Alfred Street, 
Santa Clara CA 95050) is the 
man to contact. By the time 
this goes to press they should 
have those 8080- interface 
schematics finished . . . and 
available. ■ 



Z 




Static RAM 




Dynamic RAM 





117 



Get a Watchdog 

to monitor those real-time operations 



Dave Brickner 
205 E. Caribbean 
Phoenix AZ 85022 



Applications of micropro- 
cessors in real-time situa- 
tions such as process control 
are fascinating. The designer 
and builder have the satisfac- 
tion of watching great 
mechanical and chemical 
monsters knuckle under and 
dance to the tune of the robot 
powers of the computer and its 
program. Airplanes fly straight 
and level, trains always take 
the correct track, the house 
temperature is maintained at a 
precise 68°, and the burglar 
alarm separates family 
members from crooks. All of 
these actions happen precisely 
as painstakingly designed and 
programmed. 

What Happens iff Something 
Goes Wrong? 

But what if one instruction is 
incorrectly picked out of 
memory? What if the data sud- 
denly reaches an overflow con- 



dition not anticipated in the 
design? These things can hap- 
pen, and Murphy predicts they 
will! This sort of random fault 
in a real-time control system 
can have disastrous results. 
Enter Watchdog— a simple 
hardware circuit that will 
monitor real-time software and 
catch a large percentage of 
potential errors before disaster 
strikes. 

Before we jump into the cir- 
cuit, it is useful for us to recall 
some guidelines for the use of 
monitoring functions and 
relate these guidelines to the 
real-time situation. 

Monitor Functions 

A few rules concerning 
monitor functions should be 
noted: 

1. Keep it simple. I have seen 
system designers get so wor- 
ried about all the things that 
could go wrong that the 
monitor system became the 
overriding factor. In this case, 
the system usually is never 
completed. 

2. If you can't help it, forget it. 
For instance, if the power sup- 
ply fails, you ain't gonna com- 



pute no more; so why try? (Of 
course, you can install two 
power supplies, but that 
returns us to rule one.) 

3. Only use monitors that catch 
lots of problems. The corollary 
is: Don't use monitors that 
don't catch anything. 

4. When in doubt, do the least 
risky thing. 

Well, all that sounds ob- 
vious, but you'd better believe 
organizations like NASA have 
whole squads of people re- 
searching monitors and fault- 
detection schemes for their 
control systems. Most impor- 
tant for the hobbyist is to get 
the system up with or without a 
monitor, so rule one applies. 
Nobody likes to invest and get 
no return, so rule three applies. 
And, since we can't possibly 
think of everything, rules two 
and four apply. 

The Software 

Now let's look at the real- 
time control situation to see 
the logic behind Watchdog. 
Fig. 1 shows a block diagram 
of a feedback-type real-time 
control system. The micro- 
processor measures the pro- 



cess output through its own in- 
put circuits and provides con- 
trol of the process through its 
output circuit. 

Fig. 2 is a simple view of the 
program for such a system. 
The predominant features are 



MICROPROCESSOR 



OUTPUT 
CIRCUITS 



INPUT 
CIRCUITS 



PROCESS 



Fig. 1. Feedback system for 
real-time control. 



( STAR 








INITIALIZE 
SYSTEM 
















INPUT 
DATA 










PROCESS 
DATA 








OUTPUT 
DATA 











Fig. 2. Real-time control 
system program. 



118 



a program entry from start that 
Initializes the system and a 
repeating program that 
recycles over and over through 
the system, measuring data 
and calculating adjustments to 
the output. Virtually every pro- 
gram in real time uses a varia- 
tion of this scheme. Sure, it's 
possible to complicate the 
scheme with multiple branches 
in the repeated portion of the 
program or with multiple pro- 
cesses controlled in major and 
minor program cycles set by 
the interrupt. Our goal here is 
to look at the big picture— the 
overview that will help us 
select a cheap, useful monitor. 

The repeating part of the pro- 
gram seems to be the area 
most useful to monitor since it 
is where most of the time is 
spent. The most obvious 
feature is the repeating nature 
of this portion of the program. 

We expect the program to 
pass through the reentry of 
this part of the program on a 
predictable repeat basis. Each 
time the program gets to this 
point, we are reasonably sure it 
made it through the rest of the 
program. Herein lies the 
essence of the real-time 
monitor. Each time we pass 
through this program reentry, 
we output a pulse to Watch- 



(sTART J 



INITIALIZE 
SYSTEM 

(OUTPUT PULSE 
TO MONITOR) 



INSTRUCTION 
EXERCISE 




PROGRAM 
SUM CHECK 
EXERCISE 




OUTPUT PULSE 
TO MONITOR 



INPUT 
DATA 



PROCESS 
DATA 



OUTPUT 
DATA 



Fig. 3. Instruction exerciser 
and sum check flowchart. 



dog, which expects this pulse 
on a periodic basis. If an ex- 
tended period goes by and no 
pulse arrives, the monitor 
assumes a failure has occurred 
and takes appropriate action. 

The Hardware 

Perhaps you have realized 
that Watchdog is a simple, 
retriggerable, one-shot multivi- 
brator. The 74123 style works 
just fine. One bit in one of the 
holding registers on an output 
port is connected to the one- 
shot input. On each pass 
through the program, the pro- 
grammer sets and then resets 
this bit. During the initial 
design, the period of the one- 
shot is set longer than the 
longest period anticipated be- 
tween the programmed pulse 
outputs. This period must be 
sufficiently long to prevent 
false alarms. 

So far, you couldn't ask for a 
much simpler monitor. We 
have invested one discrete bit 
from an output port, one half of 
a 74123 microcircuit and two 
instructions. Any system fault 
causing the program to tight 
loop (continue to repeat a few 
instructions endlessly) or lose 
control will be caught by the 
Watchdog. 

Further fault-detection 
capability can be added with a 
small additional software in- 
vestment. 

Two Software Techniques 

The two most effective soft- 
ware additions are an instruc- 
tion exerciser and a sum check 
of memory. The instruction ex- 
erciser is a short subroutine 
that is executed with canned 
data and known results. The 
exercise should include 
several, if not all, of the most 
frequently used instructions. I 
usually execute this 
subroutine in the program just 
before sending the pulse to the 
one-shot. If the canned answer 
doesn't check, the output 
pulse is not sent and the 
monitor catches the error. In 
most programs it is sufficient 
to use an existing subroutine 
for the exercise. 

The sum check is effective 
where program memory is con- 
tained in read-only memory or 



♦ 5V 



♦ 5V 




TO 

CPU RESET 

LOGIC 



PULSE 
DISCRETE 
OUTPUT 
(FROM CPU) 



TO FAULT 
INDICATOR 
(HI = FAULT) 



Fig. 4. One-shot with override. Select R and C values so period is 
greater than longest anticipated in the process control program 
cycle. 



is at least completely static 
throughout the process. The 
program determines the 
arithmetic sum (ignoring 
overflow) of the entire read-on- 
ly contents of memory 
periodically. This sum must be 
correct or no pulse goes out to 
the Watchdog. I typically set 
the program up so that on each 
pass one to ten bytes are add- 
ed to the sum. This may take 
up to several seconds to get 
through a complete check, 
depending on the program 
length— but, better late than 
never. At least if a fault occurs 
I catch it after a few seconds, 
rather than not at all. 

Fig. 3 is the new software 
flowchart. You may note that I 
have chosen to continue 
system operation even if the in- 
struction exerciser or sum 
check fails. This is a matter of 
personal preference, especial- 
ly concerning the process 
under control. You may decide 
this is too risky for the process 
you are controlling, in which 
case a simple shutdown would 
be more appropriate. 

The logical question at this 
point is, how do we know the 
computer will follow our 
flowchart if it can't pass sum 
check or instruction exercise? 
The answer is faith in the idea 
that the more faulty our system 
becomes, the less likely it will 
pulse the Watchdog correctly. 

Implementing the Idea 

So, there you have it; a few 
electronic parts and a dozen or 
so instructions and we have a 
monitor that will catch a large 
percentage of gremlins that 
may invade our micropro- 



cessor control system. 

The output of the monitor 
can be used in a variety of 
ways. During debugging, or 
when human intervention is 
close by, I usually connect the 
Watchdog to an indicator light 
or audio alarm. If, however, the 
process is critical, fast or un- 
touched by human hands, I 
connect the Watchdog into the 
CPU reset logic. This will cause 
the system to reset and pass 
through the initialization pro- 
gram. The reasoning is that the 
initialization program is 
designed to bring the system 
to a known quiet (stopped or 
idle) state. Thus, there is little 
likelihood of the process going 
completely astray, and a 
restart may sometimes clear 
the fault out of the system. 
Again, this is a design 
parameter each designer must 
select based on the re- 
quirements of the process 
under control. 

One note: If you do elect to 
restart the system automa- 
tically from the monitor output, 
you must remember to override 
the monitor during program 
debugging or whenever the 
CPU is used for other tasks. 
Fig. 4 is a schematic of a 74123 
dual retriggerable one-shot de- 
signed to provide Watchdog 
and the automatic reset with 
override. 

I have used this type of 
monitor successfully in many 
aerospace applications and in 
my home designs. It satisfies 
all the rules of good monitor 
design and is simple and effec- 
tive enough to provide much 
peace of mind for a very small 
investment. ■ 



119 




Kilobaud classified advertisements are intended for use by those 
individuals desiring to buy, sell, or trade used computer equipment 
or software. No commercial ads are accepted. 

Two sizes of ads are available. Hie $5 box allows five lines of about 
22 characters each, including spaces and punctuation. The $10 box 
provides ten lines of type - again, each line is about 22 characters. 
Minimize capital letters, as they use twice the space of small 
characters. Payment is required in advance with ad copy. We cannot 
bill, or accept credit. Oversize ads are not accepted. Each subscriber 
is limited to two (2) identical ads in any given issue. 
Advertising text and payment must reach us 60 days in advance of 
publication. For example, advertising copy for the March issue 
(mailed in February) must be in our hands on January 1. The 
publisher reserves the right to refuse a questionable or not 
applicable advertisement. Mail advertisements to: KILOBAUD 
CLASSIFIED, Kilobaud, Peterborough, NH 03458. Do not include 
any other material with your ad, as it may be delayed. 



For Sale: Booklet— "How to 
Make Your Computer Pay (for 
itself)." Ideas and thoughts on 
ways to make and save money 
with your computer system. 
$5.50. Herbert Schildt, 1007 N. 
Division, Urbana IL 61801. 

Mosley X-Y Plotter Model 2. 
Less than 5 hours use since last 
calibration. $110. J. D. Schoepf, 
Rt. 5 Box 113, St Charles MO 
63301. 

A DM- 3 A with upper /lowercase. 
Brand new. Guaranteed working 
perfectly. $745. Write: Ter- 
minal, Box 2467, North Canton 
OH 44720. 



PET users need info? Getting 
started with your PET work- 
book, $4. Workbook has helpful 
info, sample programs, exercises 
and fundamental features of 
PET BASIC. Send SASE for 
details. D. Smith, Box 921, Los 
Alamos NM 87544. 

For Sale: 2 16K dynamic mem- 
ory boards for S-100 bus. 
Assembled & tested. $300 each. 
Call Erick (415) 771-5496. 

For Sale: Altair 880 0B w/ 
broken protect switch (bat 
handle was accidently snapped 
off). Worked fine before the 
mishap. $650. 



PET- 2001 and Radio Shack 
TRS^80 arrived on campus. I 
want to survey users and report 
results to any interested 
hobbyists. Write: Professor Bill 
Parks, Walters State Community 
College, Morristown TN 37814. 

For Sale: Iomec disk drive w/ 
single remov. 1 MByte platter 
w/supply, rack, manual. Also: 
CDC 300 1pm drum printer 
w/man. No interfaces. Sold "as 



is 



»», 



neither used 3+ years. 
$1000 each. Chuck Gahan, 
12781 Taylor St., Garden Grove 
CA 92645. 



TRS-80 Monthly Summarizer 
PGM. HK- Level I Basic. Video 
and tape. Monthly summary by 
expense item. 26 Expense cate- 
gories—you select. Great for 
monthly budget and year-end 
tax work. Documentative. Sat. 
guar. Tape $9.95. E. W. Barnes, 
119 Skyline Dr., Piano TX 
75074. 

Pet Owners: Test your system 
before trying Las Vegas. 4 
casino games on 1 cassette. 
Blackjack, craps, roulette, 
baccarat. Full lv rules and action 
graphics for hrs of fun. Spec. 4K 
or 8K. All 4 for $25. Guaran- 
teed. CMS, 431 Monte Vista, 
Dallas TX 75223. 

KIM Expansion-4K memory; 
KP-40 printer; power; keyboard. 
Assembled and working. Just 
plug in your KIM and go. I/O 
routines are included. $400 for 
all works. Be ringer, 2500 
Teddy, #29, Las Vegas NV 
89102. 



For sale: Teletype Model 
33ASR, exc. cond., $600. Altair 
8080A 8K, TTY and cassette 
I/O, perfect, $580. Selectric I/O 
typewriter with paper tape 
rdr/pch, $480 ... all for $1500. 
A. Frankford, Lancaster PA 
(717) 299-2456. 

For Sale: North Star BASIC 
programs: correspondence 
editor, $5; stock-market-analysis 
package; $5; mailing- list /ran- 
dom-access pack., $3; Space war 
game pack., $3; plus stk mkt 
data on disk. Includes P/E, 
price, volume, % yield-weekly 
averages for 1977 on 30 heavily 
traded corporations; only $25 
for all 30! Send $5.25 or blank 
disk, write for complete list. 
Herbert Schildt, 1007 N. 
Division, Urbana I L 61801. 

Conductive Foam. W thick, 
34/sq. in. plus 25y* postage. WF, 
713 George Ln., Glendora NJ 
08029. 

CUTS fix: Unacceptable error 
rate with otherwise functional 
board is probably not your 
fault! Send $2 for copyrighted 
doc. of board mods, and explan- 
ation of the problem. DIAS, 
234 Union St., Schenectady NY 
12305. 



Use 
Kilobaud 
Classified 




The year 1977, at least for purposes of this contest, will 
end in September — since the first contest results appeared 
in the October 1977 issue. Winner for the year, then, should 
be announced in late 1978. 

Meanwhile, the winner for the best article in the January 
1978 issue is Ed Juge, author of "The TRS-80: how does it 
stack up?" 

The book winner this month is Robert C. Boyd of Kenne- 
bunkport ME. 

Keep those votes coming! 



Updates 



So many people have called requesting the phone 
number of Larry McCaig (author of "Small Business Soft- 
ware," Parts 1 and 2, Kilobaud Nos. 14 and 15) that we are 
going to print it. That number is (207) 487-2219. 

The KB Club Calendar, which has been absent for two 
issues, will appear again in the next issue—barring any 
more blizzards, a factor in holding up compilation of the 
Club Calendar. 



CORRECTIONS 



These circuit revisions to "Build Your Own ASCII Key- 
board" by Robert Brehm (Kilobaud No 9, page 22) were seat 
to us by Bob. 



REVISED SHIFT CIRCUIT 



♦5 



n 3> 

. VSHIFT 1- ""^ 



Ws- , ,1> 



-o TO SHIFT (ROM PIN 4) 




♦5 
6 




♦ 5 
1 * 



1 *^f 

i + J 



\ SHIFT LOCK 



± 



1 — H^y (ROM PIN 5) 



ONLY CHANGE 
REQUIRED 
(WAS MADE ON 

ALL PC BOARDS 

SHIPPED) AK-I KEYBOARD 

REVISED REPEAT CIRCUIT - AK I KEYBOARD 



THIS REVISION WAS MADE 
TO ALL PC BOARDS 
BEFORE THEY WERE 
SHIPPED • 




120 



c 



KB 



A 



10 



L 



E 



12 



X 



13 



II 



14 



15 



AR 



Atlanta GA 

Papers are invited for presentation at 
the 16th Annual Convention of the Associ- 
ation for Educational Data Systems, At- 
lanta GA, May 15-19, 1978. For further in- 
formation, contact: Dr. James E. Eisele, 
Office of Computing Activities, University 
of Georgia, Athens GA 30602. 



Blacksburg VA 

Tychon, Incorporated, announces the 
start of their 1978 microcomputer course 
programs in April at their learning center 
in Blacksburg. Three microcomputer 
courses will be offered: No. 628, Micro- 
processor Interfacing, April 6-8; No. 685, 
Introduction to Assembly Language Pro- 
gramming for 8080/8085 Processors, April 
10-12; No. 687, Intermediate Assembly 
Language Programming for 8080/8085 
Processors, April 13-15. Each course is 
three days long and the cost is $295 per 
person, per course. For more information, 
please call Dr. Chris Titus, course direc- 
tor, at (703)951-9030. 



Washington DC 

Amateur Computing 78 microcomputer 
festival will be held July 22-23 at the Sher- 
aton National Motor Hotel, Arlington VA. 
Those interested in presenting a paper, 
participating in a panel discussion, dis- 
playing an amateur computer system or 
sponsoring a tutorial should submit a let- 
ter of intent along with a one-page ab- 
stract or outline by April 15 to John Wall 
Miller, Program Chairman, 6921 Pacific 
Lane, Annandale VA 22003, (703) 256-5702. 
Authors will be provided with instructions 
tol ■prt^pafaAson o1 camera-ready papers, 
which are due by June 1. 

For information, write AMRAD, PO Box 
682, McLean VA 22101. 



Long Beach CA 

PERCOMP '78 (co-sponsored by the In- 
ternational Computer Society/SCCS and 
the Rockwell Hobbyist Computer Club) 
will be held at the Long Beach Convention 
Center, Long Beach CA, April 28-30, 1978. 
PERCOMP is a selling show designed with 
the home computerist and small-business 
person in mind. For information concern- 
ing seminars, contact James Lindwedel, 
Technical Program Chairperson, PER- 
COMP '78, 1833 E. 17th St., Santa Ana CA 
92701. 



ake Your 

Phone a 

Pushbutton 

Tone-Dial 

tight From 
Receiver 



You simply will not believe how easy our Soft-Touch™ 
dial is to install. If you own your own telephone, you 
need only unscrew the mouthpiece and put on the 
Contemporary Soft-Touch™. In almost no time at all, 
you can be sitting in your your easy chair, at cord's 
length from your phone, dialing any number by just 
touching the number buttons. 

With all controls right in the hand set, it's easy. Con- 
venient. And best of all, it's so inexpensive. You pay 
one low price and the Soft-Touch™ is yours. No in- 
stallation fee. No extra monthly charges - ever! 
Our Soft-Touch™ works on the very same tone dial 
principle used in all new telephones. It lets you dial a 
number in one tenth of the time it takes with those 
older spin back rotary dials. 

Tone frequencies are crystal controlled, providing ac- 
curacy 6 times beyond actual requirements. The built- 
in microphone is similar to those found in the finest 
tape recorders Clarity is better than the old carbon 
microphones currently used in most telephones. 
Important: Soft-Touch™ is approved for you to put 
on your own phone. If you can unscrew a bottlecap, 
you can install your own Soft-Touch™ in less than a 
minute. But, if you lease your phone from the phone 
company, they may wish to install it. Regulations and 
telephone company charges for this service differ 
among local telephone companies. 
It's A Portable Computer Terminal. The powerful 
tone generator is a perfect direct access com- 
municator with traditional computer systems. Several 
banks have already begun to introduce their 
customers to direct computer services. . right from a 
phone. . using the Soft Touch™ tone generating dialer. 
Use It For 10 Days... At Our Expense. If not 
satisfied with the convenience of the extraordinary 
Soft-Touch™, return it within 10 days for a prompt 
and courteous refund of the purchase price. Soft- 
Touch™ is a registered trademark of 2001 Telephone 
Systems. Protected by U.S. Patent No. 4042793 
with Manufacturer's Full Year Guarantee. 



Please send me Soft Touch™ Tone Dials. My color choice is: 

Black {Item 0036) $29 95 





Green (Item 0037) 
White (Item 0039) 



Colors below at $31 95 each: 
Red (Item 0035) 
Tan Beige (Item 0038) 
Yellow (Item 0040) 

Add $2 00 each for shipping and handling III. Res. add 5% sales tai 

Check or MO. Enclosed Charge My Credit Card: 

American Express Mastercharge Carte 

Bank Amer Visa Diners Club Blanche 

Credit Card No. 



Mastercharge Bank No. 

Name 

Address 



Eip. Date 



City 

State 

Signature 

KILB-091 

CREDIT CARD ORDERS 
CALL TOLL FREE 



BP 



© 



800-323-2272 



lllinois:312 595-0461 
Telex Orders: 25:5268 



790 Maple Lane Bensenville, II. 60106 

Contemporary 

C65 ■ marketing, Inc. *J 



Now... learn 

computer programming 

faster & easier with 

HEATH'S BASIC 

PROGRAMMING 

COURSE! 



**%***. 



^***5- 



Just 



$2995 

plus $1.69 

shipping 

and handling 




This self-instruction course 
uses proven programmed instruction 
methods to teach you BASIC . . . the most 
popular and widely used higher level pro- 
gramming language. With the help of this 
course, you'll learn all the formats, com- 
mands, statements and procedures. .. 
then go on to actually apply them with 
"hands on" experiments and program 
demonstrations on your own or any avail- 
able computer. And unlike other courses 
or books on BASIC, we teach you problem 
solving as well as programming so you 
can apply what you learn. Self-evaluation 
quizzes and exams guarantee that you un- 
derstand every detail and when you finish, 
you may take an optional examination to 
qualify for a Certificate of Achievement 
and 3.0 Continuing Education Units 
(CEU's), a widely recognized means of 
participating in non-credit adult education. 

MONEY-BACK GUARANTEE: if for any reason 
you are dissatisfied, Heath Company will re- 
fund the full purchase price of the course. 



HEATH 



Schlumberger 



HEATH CO., Dept. 351-401 
Benton Harbor, Ml 49022 



YES Please send me your EC-1100 BASIC 
Programming Self-Instructional Course. 

My □ check □ Money order for $ is 

enclosed. Or please charge to my □ VISA/ 
BankAmericard □ Master Charge 

Account # 

Exp. Date 



M.C. Code #. 



Signature. 



(necessary to send merchandise) 



NAME. 



(please print) 



ADDRESS. 



CITY. 



STATE. 



.ZIP. 



ORDER TODAY - PRICE GUARANTEED 
THROUGH APRIL 25, 1978 ONLYI 

Price is mail order F.O.B. Benton Harbor, Ml. 
Price subject to change without notice. ^5 






J 

I 

J 



121 




Same day shipment. First line parts only. Factory 
tested. Guaranteed money back. Quality IC's and 
other components at factory prices. 

INTEGRATED CIRCUITS 



7400TTL 

7400N 

7402N 

74MN 

7409N 

7410N 

74 UN 

7420N 

7422N 

7430N 

7442N 

7445N 

7447N 

7448N 

7450N 

7474N 

7475N 

7485N 

7489N 

7490N 

7492N 

7493N 

7495N 

7410ON 

74107N 

74121N 

74123N 

74125N 

74145N 

74150N 

74151N 

74154N 1 00 

74157N 69 

74161N 

74162N 

74163N 

74174N 

74175N 

74190N 1 IS 

74192N 87 

74193N 85 

7422 IN 1 55 

74298N I 65 

74365N 66 

74366N 66 

74367N 66 

74LS00TTI 

74LS00N 25 

74LS02N 25 

74LS04N 25 

74LS05N 25 

74LS08N 25 

74LS10N 25 

74LS13N 40 

74LS14N 90 

741S20N 25 

74LS22N 25 

74LS28N 41 



17 
17 
19 
23 
17 
63 
17 

1 39 
20 
50 
69 
60 
69 
17 
29 
49 
88 

2 00 
43 
43 
43 
69 
90 
29 
34 
59 
39 
69 
95 
69 



87 
87 
87 

M 
N 



74LS30N 

74LS33N 

74LS38N 

74LS74N 

74LS75N 

74LS90N 

74LS93N 

74LS95N 

74LS107N 

74LS112N 

74LS113N 

74LS132N 

74LS136N 

74LS151N 

741S155N 

74LS157N 

74LS162N 

74LS163N 

74LS174N 

74LS190N 

74LS221N 

74LS258N 

74LS367N 

LINEAR 

CA3045 

CA3046 

CA3049 

CA3081 

CA30K 

CA3089 

CA3090A0 

LM301ANAH 

LM305H 

LM307N 

LM308N 

LM309H 

LM309K 

LM311HN 

lM317Tfl< 

LM318 

LM320K5 

LM323K5 

LM320K-12 

LM320K-15 

LM320T-5 

LM320T-8 

LM320T-12 

LM320T 15 

LM324N 

LM339N 

LM340K-5 

LM340K-8 

LM340K 12 

LM340K 15 

LM340K-24 

LM340T-5 

LM340T-8 

LM340T-12 



25 
39 

30 
35 
47 
51 
51 
1 89 
35 
35 
35 
72 
35 
67 
67 
67 
91 
91 
95 
1 06 
1 95 
67 



90 

67 

85 

1 80 

1 90 

295 

4 75 

35 

87 

35 

89 

1 15 

95 

90 

292 

1 35 

1 20 

6 95 

1 35 

1 35 

1 60 

1 60 

1 50 

1 60 

1 15 

1 55 

1 10 

1 10 

1 10 

1 10 

1 10 

1 10 

1 10 

1 10 



LM340T 15 
LM340T 18 
LM340T 24 
LM343H 
LM370 
LM377 
LM379 
LM380N 
LM381 
LM382 
LM703M 
LM709H 
LM723H/N 
LM733N 
LM741CH 
LM741N 
LM747H/N 
IM748N 
LM1303N 
LM1304 
LM1305 
LM1307 
LM1310 
LM14S8 
LM18O0 
LM1612 
LM1889 
LM2111 
LM2902 
LM3900N 
LM3905 
LM3909N 
MC 1458V 
NE540L 
NE550N 
NE555V 
NE556A 
NE565A 
NE566V 
NE567V 
78L05 
78108 
79L05 
78M05 
75108 
75491CN 
75492CN 
75494CN 
» to CONVERTER 



1 10 

1 10 

1 10 

4 50 

1 15 

450 

500 

1 00 

1 60 

1 60 

40 

28 

50 

67 

35 

25 

62 

35 

82 

1 10 

1 27 

200 

275 

47 

75 

750 

300 

1 75 

1 50 

80 

1 75 

61 

50 

289 

65 

43 

79 

1 00 

1 15 

1 20 

60 

60 

70 

85 

1 75 

50 

55 



870OCJ 

8701CN 

8750CJ 

LD130 

9400CJV/F 

ICL7103 



1395 

22 00 

13 95 

995 

740 

950 



CMOS 

CD34001 Fair 
C04000 



CD4001 
CO4002 
C04006 
CD4007 
C04008 
C04009 
C04010 
C04011 
C04012 
CD4013 
CD4014 
CD4015 
C04016 
CD4017 
CD4018 
C04019 
CD4020 
CD4021 
CD4022 
CD4023 
CO4024 
CO4025 
CD4026 
CD4027 
C04028 
CD4029 
C04030 
C04035 
CD4040 
CD4042 
CD4043 
C04044 
CD4046 
CD4049 
C04050 
CD4051 
CD4060 
C04066 
CD4068 
CD4069 
CD4070 
CD4071 
CD4072 
CD4073 
CD4075 
CD4076 
C04078 
CD4081 
C 04082 
C04116 
CD4490 
CO4507 
CD4508 
CD4510 
CD4511 
C04515 
CD4516 
CD4518 



21 
21 

1 10 
21 
21 
39 
39 
21 
21 
36 
86 
86 
36 
94 
94 
21 

1 02 

1 02 
86 
21 
75 
21 

1 51 
36 
79 

1 02 
21 

1 02 

1 02 
71 
63 
63 

1 67 
36 
36 

1 13 

1 42 
71 
40 
40 
40 
21 
21 
21 
21 

1 75 



CD4520 

CD4527 

CD4528 

C 04553 

CD4566 

CD4583 

CD4585 

CD40192 

74CO0 

74C04 

74C10 

74C14 

74C20 

74C30 

74C48 

74C74 

74C76 

74C90 

74C93 

74C154 

74C160 

74C175 

74C192 

74C221 

74C905 

74C906 

74C914 

74C922 

74C923 

74C925 

74C926 

74C927 

INTERFACE 
8095 



1 02 

1 51 
79 

5 75 

2 2S 
450 

1 10 
300 

28 
33 
28 

2 10 
28 
28 

2 95 
75 
1 40 
1 15 
1 40 
300 

1 44 
200 
240 

2 75 
300 
1 50 
1 95 
750 
750 

10 50 
10 50 
10 50 



8096 
8097 
8098 
8T09 
8T10 
8T13 
8T20 
8T23 
8T24 
8T25 
8T26 
8T28 
8T97 
8T98 



66 

65 

65 

65 

1 25 

450 

3 00 

5 50 

3 10 

3 50 

3 20 

1 69 

2 75 
1 69 
1 69 



MM5320 

MM5330 

P0411D-3 

P04110-4 

P5101 

4200A 

82S25 

91L02A 

HO0 165-5 

MM57100 

GIAY38500-1 

MCM6571A 

9368 

CLOCKS 

MM5309 

MM5311 

MM5312 

MM5313 

MM5314 

MM5315 

MM 5316 

MM5318 

MM5369 

MM5841 

MM5865 

CT7001 

CT7002 

CT7010 

CT7015 

MM5375AAN 

MM5375AB/N 

7205 

OS0026CN 

0S0056CN 

MM53104 

IC SOCKETS 
SaMw Tia Lev Praflto 




0. Box 4430M Santa Clara, CA 95054 

For will call only: (408) 988-1640 
2996 Scott Blvd. 



ELECTRONICS 



Q3 



300 
360 
480 
360 
390 
400 
500 
8 95 

2 10 
1080 

7 95 
580 
79S 
7 95 
7 25 
390 
490 
16 50 

3 75 
3 75 
250 



8 
14 
16 
18 
22 



1UP 
15 
18 
20 
27 
35 



1UP 
36 

43 
58 

61 



3 lev* Wirt wrap QOM 

14 pin 35 16 pin 39 

MICROPROCESSOR 



■"M0S MEMORY RAM 8 2 U 



6800 

8080A with data 

280 

8212 



21 
21 
1 30 
5 50 
1 00 
4 25 

1 02 
94 

2 52 
1 10 
1 02 



2101 

2102-1 

21F02 

2104A4 

2107B 

2111-1 

2112-2 

MK4116 34 95 

25138 8 75 

21102-1 1 49 

MM5262 40 



450 
1 28 
1 85 
495 
400 
700 
790 



8216 

8224 

8228 

8251 

8255 

C0P1802CD 

COP 18020 

C0P1861 

6820 

6850 

6502 



24 50 
11 50 
29 95 

350 
800 
385 
350 
6 25 

11 50 
10 75 
19 95 

25 00 

12 95 
12 00 
15 00 
24 50 



1702A 
N82S23 
N82S123 
N82S126 
N82S129 
N82S131 
2708 
OM8577 
8223 
2716 

IC Tail Clips 
1 
RM 50 

Black SO 

Ktytf 8043 

comp » spec 
CRYSTALS 

1 MHz 

2 MHi 

4 MH; 

5 MHz 
10 MHi 
18 MHz 
20 MHz 
32 MHz 
32768 Hz 

1 8432 MHz 
3 5795 MHz 

2 0100 MHz 

2 097152 MHz 

2 4576 MHz 

3 2768 MHz 
5 0688 MHz 
5 185 MHz 

5 7143 MHz 

6 5536 MHz 
14 31818 MHz 
18 432 MHz 
22 1184 MHz 
CONNCCTORS 

22 pin edge 
100 pin edge 
100 phi edge WV 
TRANSISTORS 
2N2222A 
2N3904 
2N3906 
2N3055 



49S 
295 
350 
3 75 

3 75 
375 

16 50 
290 
290 

36 00 

II 

43 
43 

14 50 

/sock 

4 SO 
450 
4 25 
42S 
42S 
390 
390 
390 
400 
450 
1 20 
1 95 
7 75 
750 
750 
450 
4 50 
4 SO 
450 
4 25 
450 
450 

200 

450 

H52S 

18 
18 
18 



RESISTORS '<< wan 5% 
10 par type 03 1000 par type 012 
25 par type 025 350 piece pack 

100 per type 015 5 per type 6 75 

KEYBOAROS 63 Key Keyboards $26 95 
Hti keyboard $10 95 Fulty ee c elal 

* PC board parts and instructs $21 95 
53 key ASCII keyboard kit 55 00 

Fully assembled 65 00 Enclosure 14 95 

LEOS 

Red T018 

Green Orange 

Jumbo Red 

Green. Orange. YeHow Jumbo 



SPECIAL PRODUCTS 
MM586S Stopwatch Timer 9 00 
PC board 7.50 

SvMckM Mom Pushbutton 27 
3 pos slide 25 

EaceOor HD0165-5 6 95 

3 Otflt IMvaraal 
Counter Boarf Kit 
Operates 5-18 Volt DC to 5 MHz 
yp 125- LED display KM 



33 



T018 



15 
20 
20 
range YeHow Jumbo 25 
CUpMe LED MtwaMaf Clkee 8/$1 25 
(specify red. amber, green, yellow, dear) 

CONTINENTAL SPECIALTIES In stock 
Complete line ot breadboard test equip 
MAX 100 a digit Free Ctr SIMM 

OK WIRE WRAP TOOLS In stock 
Portable Multimeler $11 00 

TRANSFORMERS 

12 Volt 300 ma transformer 1 25 

12 6VCT600ma 3 75 

12V 250 ma wall plug 2 95 

12V CT 250 ma wall plug 3 50 

24V CT 400 ma 3 95 

24V CT 100 ma 3 25 

10V 1 2 amp wall plug 4 85 

COMPUTER BOARD KITS 

8K RAM Board Kft 175 00 

4K EPflOM Kit 119 95 

1/0 Board Kit 44 SO 

Extender Board w connector 12 SO 

Video Interface board kit 143 SO 
16K EPROM board kit w/o PROMS 85 00 

16K Static RAM board kit 495 00 

Norttt Star Flea*"/ DM KH $665 00 

Additional Drive Kit 415 00 

DIGITAL THERMOMETER $48 50 

Batt oper General purpose or medical 
32 -230"F Disposable probe cover t 2* 
accuracy Comp assy in compact case 
DC Ctr Calendar clock 
S fmctlM 4' green LED display auto 
dim Pedestal mount 2 V by 2 T 
Beautiful case tuHy assembled SS4.M 



CLOCK MODULES 
Complete alarm clocks ready to 
hook up with transformer and 
switches Very compact with 
5C and 84" digits 
MA10O2A. C or E » IN 
102P3 Traa ef ermor 2.2$ 
MA1010A. C or E 14 11 .M 
102P2 
Special I 

ill iwitchei w*en 

purchased w module 

MAINS car module J" rjreea 

lluor display 17 St 

Fair MCS IMS $3 IN 

DISPLAY LEDS 

MAN1 

MAN3 

MAN72/74 

DL704 

OL707/DL707R 

DL727/728 

DL747/750 

DL750 

FND359 

FND50O/5O7 

FND503/510 

FN080O/807 

3 digit Bubble 

4 digit bubble 
DG8 Fluorescent 
DG10 Fluorescent 

5 digit 14 ptn di s play 
NSN33M 3 digit 8 pin 
NSN69 9 digit display 
7520 Clairei photocells 
TIL311 Hen 

Metarela MEK 6M0 02 
All parts including hen 
minus 5V power supply 



CA 

CC 

CA/CA 

CC 

CA 

CA/CC 

CA/CC 

CC 

CC 

CC/CA 

CC/CA 

CC/CA 



Ml 



270 2 90 

125 39 

300 1 00 

300 1 25 

300 1 00 

500 1 90 

600 1 95 

600 1 95 

357 70 

500 1 35 

500 SO 

800 220 

60 

80 

1 75 

1 75 

100 

39 

60 

39 

950 

KH 

keyboard 
235 00 



Sinclair 3 1 / 2 Digit Multimeter 

Batt. oper. ImVand 1NA resolution. Re- 
sistance to 20 meg. 1% accuracy. Small, 
portable, completely assem. incase. 1 yr. 
guarantee. Best value ever! $59.95 



Not a Cheap Clock Kit $14.95 

Includes everything except case. 2-PC 
boards. 6-50" LED Displays. 5314 clock 
chip, transformer, all components and 
full instructions. Same clock kit with .80" 
displays. $21.95 



60 Hz Crystal Time Base 

Kit $4.75 Converts digital clocks 
from AC line frequency to crystal time 
base Outstanding accuracy. Kit includes: 
PC board, MM5369, crystal, resistors, 
capacitors and trimmer. 



Digital Temperature Meter Kit 

Indoor and outdoor. Automatically 
switches back and forth. Beautiful. 50" 
LED readouts. Nothing like it available. 
Needs no additional parts for complete, 
full operation. Will measure -100° to 
+ 200°F, air or liquid. Very accurate. 
Complete instructions. $39.95 



Clock Calendar Kit $19.95 

CT7015 direct drive chip displays date 
and time on .6" LEDS with AM-PM indi- 
cator. Alarm/doze feature includes buz- 
zer. Complete with all parts, power supply 
and instructions, less case. 

1977 IC Update Master 
Manual 

Final 1977 closeout $15.00 while they 
last. 1978 Master available late Jan. 1978 
$30.00. Complete IC data selector. 1234 
pg. master ref. guide, 17,000 cross ref- 
erences. Free update for 1977. Domestic 
postage $2.00. Foreign $6.00 



New Cosmac Super "ELF" 

RCA CMOS expandable microcomputer 
w/HEX keypad input and video output for 
graphics. Just turn on and start loading 
your program using the resident monitor 
on ROM. Pushbutton selection of all four 
CPU modes. LED indicators of current 
CPU mode and four CPU states. Single 
step op. for program debug. Built in pwr. 
supply, 256 Bytes of RAM, audio amp. & 
spkr. Detailed assy. man. w/PC board & 
all parts, fully socketed. Comp. Kit 
$106.95 High address display option 
8.95; Low address display option 9.95; 
Custom hardwood cab.; drilled front 
panel 19.75 Nicad Battery Backup Kit 
w/all parts 4.95 Fully wired and tested in 
cabinet 151.70 1802 software xchng. 
club; write for info. 



Paratronics 100A Logic 
Analyzer Kit $199.00 

Converts an oscilloscope into a digital 
tester and analyzer. Trace computer pro- 
gram flow, monitor I/O sequences, etc. 
Trouble shoot all digital , CMOS and MOS 
families. 1 28 bit truth table (8 by 1 6 bits). 
Complete with case, parts and instructs. 
Model 10 Trigger Expander Kit expands 
Model 100A to 24 bits $229.00. Model 
150 Bus Grabber Kit $369.00, a one 
board logic analyzer for S- 100 bus appli- 
cations. Instant access to 56 S-100 bus 
signals. Complete kit with all parts and 
instructs. 



2.5 MHz Frequency Counter 

Kit Complete kit less case $37.50 

30 MHz Frequency Counter 

Kit Complete kit less case $47.75 
Prescaler Kit to 350 MHz $19.95 



RCA Cosmac VIP Kit 275.00 

Video computer with games and graphics. 



Original Cosmac "ELF" kit 

All parts and instructs. $89.50 

Board only 14.95 



Stopwatch Kit $26.95 

Full six digit battery operated. 2-5 volts. 
3.2768 MHz crystal accuracy. Times to 
59 min. , 59 sec. , 99 1/100 sec. Times std. , 
split and Taylor. 7205 chip, all compo- 
nents minus case. Full instruc. White or 
black plexiglass case. $5.00 



Video Modulator Kit $9.95 

Convert your TV set into a high quality 
monitor without affecting normal usage. 
Complete kit with full instructions. 



Auto Clock Kit $15.95 

DC clock with 4-. 50" displays. Uses 
National MA-1012 module with alarm 
option. Includes light dimmer, crystal 
timebase PC boards. Fully regulated, 
comp. instructs. Add $3.95 for beautiful 
dark gray case. Best value anywhere. 



TERMS: $5.00 min. order U.S. Funds. Calif residents add 6% tax. 
BankAmericard and Master Charge accepted. 
Shipping charges will be added on charge cards. 



FREE: Send for your copy of our NEW 1978 
QUEST CATALOG Include 24c stamp. 



HEATHKIT 

You know us for quality kits... 
We've got "quality" jobs, too, in 

SOFTWARE DEVELOPMENT 

Broad Assignments 

Several positions open requiring demonstrated ability to 
write operating systems, utilities, interpreters, compiler 
software; 8080 or PDP/11 systems background helpful. 
Opportunity to do applications for new personal compu- 
ters, a rapidly growing product. Calls for BS or advanced 
degree in CS. or equivalent. 

TECHNICIANS 

(Digital and Communications) 

Several openings for entry-level electronic technicians 
in service and repair of digital computers and amateur 
radio equipment. 

Salaries are competitive, with excellent benefits addi- 
tional. Our ideal location is a pleasant, small community 
on Lake Michigan. 90 minutes from Chicago. Please 
send resume in confidence, or phone collect to Ken 
Smith, (616) 982-3673 

HEATH COMPANY 


HEATH 




Schlumberger 


Benton Harbor, Michigan 

An Equal Opportunity Employer M/F 



• •••••••••••• 



• ••••••••• 



COMPUTER CLUBS! 

Do you need to start a 
club library? 

Start with the BEST! 
Have the secretary of your club 
send us your current club roster, 
complete with names, addresses 
and zip codes and we'll send you 
one of your choice of the follow- 
ing books, . . . FREE! 

Hobby Computers Are Here 

The New Hobby Computers 

IC Test Equipment, the new Vol. IV of 

the 73 Test Equipment Library 

f7/'mi7 one book per club) 

Kilobaud Clubs 
Peterborough, NH 03458 




122 



TM 



Software 
Collection 

Business Programs For 

AM-100 

Moomus 
RDly-8813 

Send $3.95 for 

fully illustrated catalog w/1 

instructions, flow charts, 

print outs - A/R , A/P, G/L, 

Payroll, Inventory, etc. 

{programs are $25 -$250) 

BVTE SHDP 

the affordable computer store 

4 west mission 
santa barbara, ca 

931 01 

(805) 966-2638 



INTRODUCING 

THE OE 1000 

VIDEO TERMINAL 




B27 



The OE 1000 is a low cost terminal for use with 
any computer having serial ASCII capability. 
Just add a modified TV or video monitor. The 
following features can be found on the OE 1000: 

• 16 lines x 64 characters 

• 128 characters, including upper and lower 
case 

• Has full x-y cursor control 

• Keyboard operates in either upper/lower case 
or TTY mode 

• Packaged in high impact plastic case 

• RS 232 or 20 ma current loop 

Price for the OE 1000 is 
$275.00 kit form • $350.00 assembled 

Call or write today. MC or BAC accepted 

OTTO ELECTRONICS 

P.O. Box 3066 Princeton, N.J. 08540 

(609)448-9165 



The All New! 



Personal & Small 
Business Computer 



Plan 

To 
Exhibit 



Expo 




CC 



South" 



Plan 
To 

Attend 



May 19-21,1978, Exposition Park 

Orlando, Florida 

For Details Call Or Write: 

Felsburg Associates, Inc. (301)262-0305 
P.O.Box 735. Bowie. Md.. 20715 



123 




ENTERPRISES 

P.O. Box 254 KING OF PRUSSIA PA 
19406 
(215)279-7968 R20 

HEAVY DUTY IBM 735 I/O SELECTRIC BASED TERMINAL 
MECHANICS COMPLETELY REFURBISHED— 
ALL NEW MICROPROCESSOR-BASED ELECTRONICS- 
SWITCH SELECTABLE FOR EITHER ASCII OR EBCDIC OPERATION 

PRICE: $895 




WHAT YOU SHOULD KNOW BEFORE BUYING ANY STANDARD IBM SELECTRIC TERMINAL 



• Carriage Return time is about 5 times longer than a standard terminal; therefore, you need to transmit up to 12 null or rubout 
characters after the standard CR/LF characters to allow enough time for the carriage return. This may require you to rewrite your 
computer's software. There are other characters which have similar problems such as Index, Tab, Backspace and Shift. 

• The mechanics of the IBM Selectric limit the printing speed to a maximum of 14.9 characters per second, therefore it cannot 
run at 150 baud (15 characters/sec.) 

• The standard baud rate for a Selectric is 134.5 and therefore cannot interface with a system having only the standard baud 
rates such as 110 or 150 without modifying or completely replacing the terminal's electronics. 

• Some of the IBM Selectric terminals use a unique character ball and are not interchangeable with the standard typewriter ball. 
The balls for these are more expensive, harder to find, and do not have the font selection. 

• The IBM Selectric's printer and keyboard are mechanically linked together and therefore, without sophisticated electronics, it 
cannot interface with a full-duplex system. 

• The Selectric produces only 10 standard control codes versus 34 on a standard ASCII terminal. 

• There are several IBM Selectric terminals around and not all have the heavy duty Selectric mechanism. 



WHAT YOU SHOULD KNOW ABOUT THE IBM I/O SELECTRIC TERMINAL THAT WE ARE OFFERING 



• TWO operating systems (switch selectable) 

A. As a standard IBM terminal using EBCDIC Code at 134.5 Baud. So that it can be used with IBM equipment. 

B. As a Full 7-bit ASCII terminal at 110 Baud. With the following features; 

1. The terminal operates at 10 cps, but prints at 14.9 cps and has a 150 character buffer to compensate for the long carriage 
return time. Therefore there is no requirement to rewrite your computer's software. 

2. It generates all 34 of the standard ASCII control codes. 

3. Full or Half-duplex operation. 

4. Generation of parity. 

5. Two modes of operation: 

a. TTY Mode: Transmits only upper-case codes (for alpha characters only) like a standard TTY even if the shift key is not 
depressed. 

b. Typewriter Mode: Transmits both upper and lower-case codes, dependent upon the shift key being depressed or not. 

• Has both RS-232 and 20 ma. Current Loop interfaces. 

• Remote/Local switch, so it can be used as a typewriter or a terminal. 

• Uses the standard IBM Selectric character ball. 

• Has a 15" carriage for up to 132 characters per line. 

• Platen feed. 

==zzzzz=zzzzzzzz^zzzzizzzizz: also available :zzz=^=z^^z=zi^=:^=zr^r: 



Custom Power Supply designed for the KIM-1, providing 5vdc @ 1.2 amps & 12vdc @ .1 amps. Price: $40.00, plus $1.50 shipping 
& handling. Commercial duty— Full 2 year warranty. 

COMING SOON 

A PROM blower for 2708s and a PROM card for 2708s, 2758s, or 2716s, and Mini-2 Mother Board and 8K RAM Board— all designed 
for the 6502 based KIM-1. 



• ALLOW 6 TO 8 WEEKS FOR DELIVERY • PRICE INCLUDES FULL DOCUMENTATION • 30 DAY WARRANTY— PARTS AND LABOR j 

Terminals only, select: □ Airfreight □ Surface terminals shipped freight collect— fob pheonix az 

Enclosed: □ check DM.O. Charge DVISA □ Master Charge 

Card # .Interbank # 



Expiration date:. 



Signature:. 



# OF TERMINALS @ $895 $. 

# OF POWER SUPPLIES @ $41.50 $. 

PA residents must add 6% sales tax $. 

Total amount of this order $ $. 

NAME: 

ADDRESS: 

CITY: 



STATE: 



.ZIP:. 



PHONE: ( ). 



Visa (BankAmericard) & Master Charge Accepted. 




124 




t»«fJe* 



iMSs** 



A^° pe 



1V^ 



-J 5 

£ ° 

p £ 



00 



to co 

o 







>0- 










1 






of 










^-k* j 



rkup 



rttar 



I 



lm< 



l 



» 



Post Office Box 3097 K • Torrance, California 90503 



Point DfSale 

CnmPUTER 



$1 



50 

set 




Manufactured by TRW Data Systems for the fast food industry Designed for error-free 

data entry. The operator simply blackens the appropriate box on a mark sense card 

and inserts it into the form reader The CPU searches internal programable drum 

memory for unit price and extends it by quantity, displaying the customer's grand 

total on the LED module. 

Memory system is capable of retaining over 40 register items Accumulated data may 

be pulled by a master computer 

This point of sale computer makes a super mark sense data terminal The TRW 1336 is 

shipped complete with cables and self contained *5& • 12v. power supply. 

Brand new in factory cartons. Original cost $7,000 Weight 100 lbs., shipped freight 

collect. Complete documentation not secured at press time 



CONNECTORS 

P^ "°°° L RS-232 



»»» 11 "1 

\±S_ MALt 



o£ 



D° 



~WmmT 



DB25P 
male plug & hood 

*3?5 

DB25S female 

$ 395 



Edge 
Connectors 




100 PIN 

IMSAI/ALTAIR 

S100 • GOLD PLATED • .125" CENTERS 

Altair .140 row, soldertail $5.98 3/S16.50 

Imsai .250 row, soldertail $4 98 3/$13.00 

3 Level Wire Wrap 250 row . $4.98 3/$13 00 

SPECIALS 
W/W same as above without ears$3.50 3/$10 
72 (dual 36) W/W 156' centers. $2.50 3/$6 



$ 498 

10 for $45. 



Pi.^l.i Certified Digital 

bCQtCn CASSETTES 



BRAND 




Diskettes 

Please specify 
IBM 3740 serias 
or 32 sector, 
also 

Minidisks 



Won't drop a BIT! 




CALIFORNIA 
INDUSTRIAL 

is an 

Authorized 

Dealer of 

Scotch Brand 

Data Products 



Electronic Entertainment Center 

Tennis-Handball 
Hockey-Smash 

Action-packed color entertainment for 
the whole family. Adjustable skill level 
controls allow players of all ages to com- 
pete in tennis, hockey and handball 
.' This four game entertainment center 
turns your television into a video play- 
ground 

On screen scoring, live action sound and 
true component color makes this video 
center an excellent buy at only $24 88 
Complete with antenna box and AC adapter 




Color *24.88 



HEXADECIMAL KEYBOARD 



Maxi Switch hexadecimal keyboards are designed for 
microcomputer systems that require 4-bit output 
in standard hex code 

Each assembly consists of 16 hermeti- 
cally sealed reed switches and TTL "one 
shot" debounce circuitry 

Reliable low friction acetal resin 
plungers are credited for the smooth 
operation and long life of this premium 
keyboard 

Requires single + 5 volt supply 



TELETYPE! 



i i * 



New from Teletype, the Model 
43 is capable of printing 132 ASCII 
characters per line Send and receive 
data at 10 or 30 Char, per second Key 
board generates all 128 ASCII codecombina 
lions RS-232 interface, same as the popular 
Model 33 Data sheet sent upon request Manufac 
turer suggested price $1377 00. 

IMMEDIATE DELIVERY *1219 

TTL model with NOVATION brand 
Acoustic Modem. M419 






REGULATED 

POWER SUPPLY 



Delivers 5 volts at 8 Amperes 
along with three other regu 
lated outputs. 

This used supply is sold "as 
is." but we still feel that this 
is the best buy you'll ever see 
in a regulated power supply 
75 lbs.. Schematics included 




u7ed '49.50 



Shipped Freight Collect 



'24.88 



UN I VAC 



The famous Sperry Univac 1710 Hollerith keyboard assembly 
is now available from California Industrial tor only $24 88 
The ideal computer input device tor accountants and 
mathematicians The numeric keys are placed on the lower 
three rows to resemble a ten key adding machine This 
format allows one handed numeric data entry 
Original cost was $385 Used but guaranteed in excellent 
condition Complete with documentation 



Quiet Buss 

S-lOO MOTHER 

The Quiet Buss from California Industrial is 
quality engineered No short cuts have been taken 
to produce this mother board Active termination 
circuitry prevents noise and crosstalk Manufac 
tured from extra heavy FR 4 epoxy glass Features 
2 ounce double thickness copper traces 






18 

SLOT 



29.95 



mflnUflL DRfiPHiTE 
DiSPLflV GEriERflTDR 



Modern technology has pioneered the development ot this 
unique printer Our Manual Graphite Display 

Generator has the capability ot producing the full upper and 
lower case ASCII set Self contained cursor assembly allows 
the operator to eliminate erroneously entered inlormation 
Each unit is manufactured to strict tolerances as prescribed 
by standards set forth by California Industrial One free with 
every order 



jOV STICK «« 




W'.W? for 

'1000 

This joystick feature four 100K potentio- 
meters that vary resistance proportional to 
the angle of the stick Perfect for television 
games quad stereo and radio controlled 
aircraft 



LOW POWER 

450 IMS 



W E J5 

BU* 1 



^ 



Lowest Price 
Anywhere 

Our low power static RAMs 
are factory prime. Purchased, 
on contract, directly from one 
of California's leading semi- 
conductor manufacturers. 
Access time guaranteed 
faster than 450nS Minimum 
purchase 32 pieces. 
Sorry, credit cards can not be 
accepted on 21L02V 



7400 


13 


7442 


59 


7401 


19 


7443 


79 


7402 


19 


7445 


89 


7403 


19 


7446 


99 


7403 


19 


7447 


99 


7404 


19 


7448 


99 


7405 


19 


7450 


25 


7406 


19 


7451 


25 


7407 


25 


7453 


25 


7408 


25 


7454 


25 


7409 


25 


7460 


25 


7410 


19 


7470 


25 


7411 


25 


7472 


39 


7412 


35 


7473 


39 


7413 


49 


7474 


35 


7414 


79 


7475 


49 


7416 


39 


7476 


39 


7417 


39 


7479 


399 


7420 


19 


7480 


79 


7422 


49 


7482 


99 


7423 


39 


7483 


99 


7425 


39 


7485 


99 


7426 


39 


7486 


49 


7427 


39 


7488 


340 


7428 


49 


7489 


2 79 


7429 


39 


7490 


49 


7430 


25 


7491 


99 


7433 


39 


7492 


49 


7437 


39 


7493 


49 


7438 


39 


7494 


79 


7439 


39 


7495 


79 


7440 


39 







7496 

7497 

74100 

74107 

74109 

74110 

74116 

74120 

74121 

74122 

74123 

74125 

74126 

74128 

74132 

74136 

74141 

74145 

74147 

74148 

74150 

74151 

74153 

74154 

74155 

74156 

74157 

74159 

74160 

74161 

74162 

74163 

74166 

74167 

74170 

74173 

74174 

74175 

74176 

74177 

74192 

74193 

CM 

4001 
4002 
4006 
4007 
4008 
4009 
4010 
4011 
4012 
4013 
4014 
4015 
4016 
4017 
4018 
4019 
4020 
4021 
4022 
4023 
4024 
4025 
4027 
4028 
4029 
4030 
4032 



OS 



79 
399 

1 19 
39 
49 

179 
199 
179 
39 
39 
69 
59 
59 
49 
99 
89 
99 
99 

2 49 
199 
1 19 

99 
89 
99 
99 

129 
99 

299 

1 19 
99 

149 
99 

1 19 
499 

2 49 
149 
1 19 

99 
99 
99 
99 
99 



4033 
4035 

4040 
4041 
4042 
4043 
4044 
4046 
4047 
4049 
4050 
4051 



199 
169 
199 
149 

1 49 
149 
149 

2 49 
2 49 

79 

79 

199 

CPU's 



8080A 

6800 

Z80 



14 95 
24 95 
39 95 



MEMORY 


1702 A 


495 


82s23 


2 95 


82s123 


2 95 


2102 


179 


2102 1 


189 


21L02 


1 19 


250nS 


1.49 



CLOCK'S 

5314 2 95 

5316 4 95 

5375 3 95 





BRIDGE RECTIFIER 
MOTOROLA 12 Amp 50v 



FROM ATARI 

COLOR TELEVISION 
R.F. MODULATOR 

$ 13.^5 < ^^^ The Atari R.F. Modulator 

allows computer data to be 
displayed directly upon your 
existing television system. 
This unit converts the sig- 
nal from the Apple II and 
other video sources into 
television frequencies. 
Operates from single 5 
volt supply. Complete 
with metal case, mating 
R.F. connector and 15 
feet of coax cable. Schematics 
and instructions included. 




19.98 



S-100 PROTOTYPE BOARD 

GP100 Maximum design ver * , 
satiitty olong with standard 
oddress decoding and but 
fenng for S100 systems 
Room for 32 uncommitted 16 
pin IC s, 5 bus buffer & de- 
coding chips 1 0IP oddress 
select switch, a 5 volt regu- 
lator and more 
WWIOO-Wire wrap bread 
board similar to the GPlOO 
Allows wire wrap of all sizes 
of sockets in any sizes of 
sockets in any combination 
An extra regulator position 
for multiple voltage applied 
tions 





SPEAKERS 

S.6S as 

2 4 Miniature 
Perfect for TV games, alarm 
systems, speech synthesizer 
or intercom. 8 ohms 

5"HiFidelity *298 



Thumbwheel 
<lS!L switch 

Ten position 

BCD 



v. 



V 



139ea. 

10 50 

WW 



Miniature 
Switches 



i 



■ 

your choice 



W 



TRIMMER 

POTENTIOMETERS 



CAPACITORS 



10 50 100 Ik 



2K 5K 10K 50K 



25 

25 

199 

25 

149 

69 

69 

25 

25 

49 

149 

139 

69 

129 

169 

179 

139 

149 

125 

25 

1 19 

25 

69 

125 

199 

69 

49 



300H 

301H 

301CN 

302H 

304 H 

305H 

307H 

307CN 

308H 

308CN 

309H 

309K 

310H 

310CN 

311H 

31 IN 

312H 

318H 

318CN 

319CN 

320K-5 

320K 12 

320K 15 

320T5 

320T-8 

320T 12 

320T 18 

320 24 

324 N 

339N 

340K-5 

340K 8 

340K-12 

340K 15 

340K-18 

340K24 

340T5 

340T 12 

340T 15 



79 

39 

39 

129 

129 

99 

49 

39 

99 

99 

109 

99 

1 19 

1 19 

99 

99 

199 

179 

149 

129 

139 

139 

139 

175 

175 

175 

1 75 

175 

1 79 

169 

195 

195 

195 

195 

195 

195 

179 

179 

179 



340T-24 


179 


350N 


99 


351CN 


65 


370H 


129 


370N 


129 


373N 


3 19 


377N 


399 


380N 


139 


381N 


179 


382N 


179 


NE555v 


49 


NE556 


129 


NE565H 


149 


NE565N 


1 79 


NE566N 


125 


703CN 


45 


709H 


39 


709N 


39 


710N 


79 


711H 


39 


711N 


39 


723H 


55 


723N 


55 


725H 


3 49 


733H 


149 


733 N 


99 


739N 


1 19 


741N 


09 


747N 


79 


748H 


39 


748N 


39 


1414N 


1 75 


1458 


69 


UART 




AY 5 1013 A 




5for*.98 



Jfc 

15 



20 



50 100 



16< 14< 12< 



&VJ 



$.69 

Conductor Ft. 

IBBON WIRE] 

SPECTRA-STRIP 



$ 4.98 

factory prime 

2114/4045 IK by 4 STATIC MEMORY 

450nS *11? 5 650nS *9 95 



Transistors 

ea. 10 50 100 

2N2222A " 

2N3055 

M J 3055 

2N3772 

2N3904 

2N3906 



.20 18 .16.15 
.69 .65.59.55 
.79 .75.69.65 
1.59 149 1.39129 
.15 .11 .09.07 
.15 .11 .09.07 

Diodes 

10 25 100 
1N4002 100*. .08 06.05 
1N4005 600* .10.08.07 
1N4148 signal .07.05.04 
jumbo red ea. 10 25 100 
LED's ^5.13.11 .09 



9vdc, 15mA. 1.19 

9vdc,175mA. 1.95 

12 vdc, 600mA 2 95 





'98 



RELAYS 

SPOT MINIATURE 

10 » 100 
lP^ea. $115 104 .89 

Coil 12 Volt dc. 



7 Amp Contacts 
PC. Board Mount 



Output: 

12v.ct. 175mA. 

TRANSFORMER 




Binding Posts 

5 -way 

3 l.r *1.19 

20 100 

♦35 .29 



(213)772 0800 




ELECTROLYTICS 






•a. 


10 


50 


80,000 lOv 
4500/50v 


. 3.95 349 2.95 
.5149 135 1J9 


1000 15v 
axial 


5.55 


49 


45 



5.98 $.88 .81.73.66 
SPOT Miniature Toggles 

7101 C&K ON NONE ON 

7107 jbt ON OFF(mnt.ON) 

7108 CK ON (moment ON) 

Rocker JBT OPDT 

Rotary 3P-4-Pos. 

Rotary 3P-6-Pos. 

Push B (NO.) 5.39ea. 3/51 



.1 disc 
.01 disc 



* 



DIP Switch 




100 



5163 152 129 
specify 

8pos. 



DISCOUNT 



Wire UUropCenter 



Heavy 
duty grounded 
power cord and mating 
chassis connectors. 



SOLDERLESS 

TERMINALS 

INSULATED 
20 for i 

*98 

Specify :22 18; 16 14' 
100 500 Ik 
4.50 20 35 



IC SOCKETS 




pin 


wire wrap 
ea. 25 50 


low profile 
ta. 25 50 


8 




17< 16 15 




14 


37< 36 35 


18 17 16 


16 


38 37 36 


19 18 17 


24 


99 93 85 


36 35 34 


40 


169 155 139 


63 60 58 



wrapping 

tool 



All merchandise told by California Industrial la premium grade 

Orders are shipped the same day received. 

PLEASE INCLUDE $1 00 SHIPPING ON ORDERS UNDER S 15.00 

California residents add 6% sales tax • Money back guarantee. 



.98 500 1,000 11,000 

*9 515 5105 



Reader inquiry card number C 50 



0K HOBBY WRAP-30 

• ire wr.jp * strip tool 



• • 



MS-15 MINISCOPE 




eadabi »ty in D,r ect ~ 




$l°° 
**.&* 



-'*c *t>c 



y»« **> *>oo 



°*M ? 




J690-12 

Card Extender has 100 contacts — 50 
per side on 125 centers — Attached 
connector — is compatible with S 100 
Bus Systems $25.00 

3690 6 5 22/44 pin 156 ctrs Ex- 
tenders $12 00 



^n a ^t, c ' re nt 



% 



8" 



4C 



*o/t. 






LE0 *um CLOCK 



9 <%«.•%* 



o>.& 



W^ Vt, *^« 



8803 

MOTHER 
BOAflO FOR 
S100 BUS 
MICRO- 
COMPUTERS 

• K.I includes I? 
lanljlum capaci- 
tors tor +5. +n 

— \7 Buses ana mu- 
I4M0 mounting space's 

• Wiring s«M shown Com 
pontnl skM bare tooiy 
glass «nth white markings lor 
component locations 

• GlO epoiy glass board with 2 ounce, 
cooper soMtr pialefl ana 0M aiame 
Vet Nats** vaadi 

• Solder mash with solder windows 
etched circuits to avoid accidental short 
circuits 

| • Mounts 1 1 receptacles with 1 00 contacts ( 2 
rows) on I ?b centers with ?iO row spacing 
Vector part number Rill ? or mounts 10 recep 
tacies plus interconnections to smaller mother board 
tor eipanswn 

• Includes etched circuits and instructions lor option ot 
active pull up or floating terminations 

• Large buses *bV and GNO (10 AMPS) ♦i?vort6Vi? 
AMPS) Current ratings are per Mil SfO 27Swiln I0*C 
lit* 

• Fits in vector pat enclosures 

• Fits m iMSAi SOW microcomputer as eipandor board 



% V 






TV* 



*s 



''Co 









»\ 



*•»- 









7 ecy 



* r 9e. 



e ye ar '*bor Ql *0» n 




•t 







D,s P'ayand/c on/ y y 

°' 2/$i5. 00 



S7.95 






<?5^&* 



' 0r 'c 



A 



s i.oB^ee 



*?* 




<£? 



» $79 "«••»•' "»«^- » 

^ _wf unit ,»r\Ot ol 



^aS-5* 



*0 



'• J «. 



,t»» 



7<- 



50 



Or- 



es. 



*5f 



/a 



T3 



3 LEVEL 
GOLD WIRE 
WRAP SOCKETS 



2549 




5099 

37 

37 

37 

40 

62 

.71 

95 

75 

84 

130 

1 29 



Phenolic 

HHTMO 

84P44-062XXP 
169P44-062XXP 
^P*** Oleaa 

64P44^)62 

84P44062 
I69P44062 
'69P84Q62 



suss** • ,M 

100* 

"t« /fcfr BOARD 

042dia holes on 
1 spacing for ic-s 



„e to or* 



UnK 



I rS! **}«%£ *~*ti&& iz^t 









'fl/i? >? 



0> 



c. 



s 



• 

o 
o 






Too 
* * i 

I I 



r « 



<^5 < 

V 



H** 



l 





I 



i 



5 

o 



\ 



I. 



Uo s r 

IrTjIf-? 

I if 

o 5 

- i* 

a 



S 

? 



3 

o7 

3 
o 

c 

en 

Li 
3 

67 
o 

c 

i 



m 



CD 



U.JO 

" So 

m — 



n 

c 






»ccui 

l»ltt 






> 9 
»s» 






fiSHjl 



rn«t»>OP 



po**; 



i w* 



\XZ*""* 



.?*<" 



»1»* 



Ji Iff??** / 



« 5.1 7" 



<5k6 5- 
<5»85 
4 5x17" 
8.5* 17" 



73 



8 149 
8 351 

p*»ce 

8 1.70 
8 2 10 
8 4 30 
8 6 39 



8V 



or 




3677 9 6" x 4.5' 
$10.90 

$9.74 

Gen Purpose DIP 
Boards with Bus Pattern 
tor Solder or Wire Wrap 
Epoxy Glass 1/16" 44 
pin con spaced 156 






S5 

8o ards . P ' e Punc e e S d anc 



^e 



°*e r . 
8-24 






5J -5 2; 



N S 



If * * «Bf ■ °» 



5^T 



^^ 



"—-hi] 



V/VC 6 "" 



fh 



'S 



fio e . Ce ' v e 



K8 

»v/fr) 







VO«j; 



Pdr-f 



"o 



P 'v-A 



Pper c/ atf 

*50o 



, r '9ht Pr 
tai r b re en , 

~^^IMI 7 



**' ft, 

SPECIAL 



pU^r i," « 









ii£l 100 ' o "«» 

\r ?^«wtr 

J ^.»./o- ,, -*»C«J il-r .^ 



PRIORITY IONE / ELECTRONICS 




P031C Woodkey Ae. SepUvecb CA. 913- 

Terms VISA. MC. BAC. check. Money Order. COD. US Funds Only CA residents add 6% sales tax Mini- 
mum order $10.00. Orders less than $75 00 include 10% shipping and handling, excess refunded Just in case 
please include your phone no "Sorry, no over the counter soles" Good thf ° J 

for our latest brochure. phone orders welcome (213) 8938202 




• • 



P21 



OEM and Institutional inquiries invited 



LEOU 

MG 10A 
List $72.00 



=lrinr>SINIW GLSIAI oo 



& IdODSINIW QLSIAI 



THE CHIPS ARE DOWN ! 

8K NOW JUST $1 49 ASSEMBLED 



Thinker Toys 7 " brings down the 
high cost of adding big memory 
capacity to your S-100 system! 

The ECONORAM III* 8Kx8 (by 
Morrow's Micro- Stuff) comes fully 
assembled, burned in, tested and 
fully warranted for one full year — 
for just $149! 

It's configured as two individually 
addressable 4K blocks. And it typically 
consumes less than one-half the 
power of any competitively-priced 
memory. 

Obviously, our new ECONORAM 
III* 8Kx8 isn't just another cheap kit. 
It's a design breakthrough in dynamic 
memory that gives you guaranteed 
reliability with tremendous savings 
in cost and power. 

You save on cost and power 
because ECONORAM III* is the first 
fully reliable dynamic memory. It's 
unique Synch roFresh™ refresh cir- 
cuitry weaves itself into the natural 
timing of the S-100 bus to provide 
simple, invisible and absolutely 
reliable refresh . . . with fewer parts, 
less power, lower cost and no 
interference with computer speed 
or timing. 



George Morrow- Inventor 8- Designer 




You just plug ECONORAM III* into your S-100 bus and run perfectly 
for at least one full year. Or your money fully refunded. It's that simple. 

So don't let the high cost of memory keep your system down. ECONO- 
RAM 1 1 1 * 8Kx8 memory is available now at leading computer shops. Or ask 
your nearest computer shop to order it for you. 

Or, if unavailable locally, write direct to Thinker Toys™ for specs and 
ordering. BAC/MC orders can be placed by phone to 415-527-7548 
(10-4 PST). Add $3 for handling; Cal. res. add tax. 

Morrow's Micro-Stuff for 



tm 



Thinker Tbys 



1201 10th Street Berkeley, C A 94710 



*ECONORAM is a trademark of Godbout Electronics 



M7 



128 



T r=-COMPUTER 
^\/^ODUCTS 



MOTOROLA 

6800 
COMPATIBLE 

MODULES 



$235.00 



MEK 6800 D2 KIT 

9600 6800 MPU 595.00 

9601 16 Slot Mother Bd. 175.00 

9602 16 Slot Card Cage 75.00 

9603 8 Slot Mother Bd. 100.00 
9610 Proto Board 36.00 
9615 4K EPROM Module (1702A) 250.00 
9620 16 Port Parallel I/O 375 00 
9626 8K Static RAM Module 295.00 
9626K 8K Static RAM Kit 225.00 
9630 Extender Card 60.00 
9650 8 Port Duplex Asyn Serial I/O 395 00 
Connectors $6.50 6/84.00 

All assembled & tested not Kits 

PLUS MOTOROLA TV MONITORS PRIME 
Model M3560 155 L01 12" display 219.95 
Model M2000 155 9" display 199.95 

Add $10.00 for shipping 

LOGOS 8K STATIC MEMORY 

$125.99 

Kit 

Assembled & tested $1 79.95 
250 ns. Kit 149 95 

Assembled & tested 1 99.95 

Features: Lowpower, Dip Switch 
.. Selectable memory protect 



><e* 



down to 256 Bytes, addressing 



^ "*\d . on 1K Boundaries. No wait 

V xe - t \ e ° states, fully buffered, battery 
V^ backup. 

SPECIAL OFFER: 

Buy 4 Units Only $1 17.00 ea. 

BYTEUSER 8K EPROM $64.95 

Assembled & tested $ 94.95 
~ZT«^ Bare PC Board w/Data 21 .95 

8K EPROM (8) 2708 8112 00 

Features: Power on Jump, Reset 

Jump, all socketed with top 
quality PC Board material. 

SPECIAL OFFER: 

Buy 4 Units Only $59.95 ea. 



Z 80 CPU KIT 

Low Price 

(regular price 269.95) 

Assembled & tested 



$129.95 

Kit 
$199.95 



FEATURES: 

S 100 IMSAI/Altair compatible, 
completely compatible to TDL 
hardware and software. Can be 
used at 4MHz with Z 80 A. 
Add $7.00 for sockets. 
Add $5.00 for Z80 manual. 

NOW IN STOCK 
FOR IMMEDIATE SHIPMENT. 

DATA BOOKS 

NSC Digital S 3 95 

NSC Linear 4 95 

NSC Linear A/N Vol I 2 95 

NSC Linear A/N Vol II 2 95 

NSC CMOS . 2 95 

NSC Audio 2 95 

NSC Voltage Reg 2 95 

NSC Memory ... 3 95 

Intel Data Book 3 95 

Intel MCS 85 Manual 4 95 

Intel MCS 80 Manual 7 95 

Intel MCS 40 Manual 4 95 

AMD 8080 Microuroc Handbook 7 95 

AMI MOS Catalogue 3 95 

Raytbeon Liiiimi 2 50 

Raytheon Ou.tds Du.ils 1 95 

Gl MOS Catalogue 4 95 

Osborne Intro to Micro Vol 7 50 

Osborne Intro to Micro Vol I 7 50 

Osborne Intro to Micro Vol II 15 00 

Osborne 8080 Programming 7 50 

Osborne 6800 Programming 7 50 

Osborne Z80 Programming 7 ! 




AMI 

6800 KIT 
EVK 99 

only 

$133.00 

Send for complete details 

EVK 99 Kit $133.00 

EVK 100 Kit 269.95 

EVK 200 Kit 449.95 

EVK 300 Assembled . . . 699.00 

Universal Kluge Board . . . 95.00 

16K Byte RAM Board . . . 75.00 

6 Slot Motherboard .... 35.00 

Extender Board 45.00 

Video Board (avail, future). . 95.00 

Connectors . . $6.50 12/59.95 

Solid Frame Chassis . . . . 120.00 

Frame Chassis 69.95 

Micro Assembler ROM . . . 30.00 

Proto ROM 30.00 

Tiny Basic Papertape . . . 20.00 

Tiny Basic EPROM .... 125.00 
Hardware or Programming Manuals 15.00 ea. 

8080A CPU KIT $99.95 

Kit 

Assembled & tested $129.95 

FEATURES: 

S-100 bus compatible, 

complete CPU with 

eight level vector interrupt. 

Includes sockets. 

Add $5.00 for 8080 Manual 

16K SUPERFAST RAM'S 
up D 416/4116 350ns. PRIME 

Buy 8 pes. - only $29.95 each 
Buy 16 pes. - only $27.95 each 

Larger quantity or group buys 
call for current price quote. 

TARBELL FLOPPY INTERFACE 

Complete Kit Only $179.95 

Assembled & tested $269.95 

FEATURES: SIOO/Altair/IMSAI 

compatible, compatible 
to most disc drives 
including Persci, Innovex, 
GSI, Shugart and others. 

SOFTWARE: Uses CPM which is 
available for $70.00 
CPM documentation 

add $20.00 

Same Day Shipment 



NAKED PC BOARD SALE S-100 

$31.95 



Z 80 CPU 
2708 EPROM 8K 
8K Static RAM 
32K Static RAM 

Floppy I/O 
Cassette I/O 
Proto Bd. 
Extender 



21.95 
21.95 
59.95 

$39.95 
29.95 
27.95 
15.95 



UV "EPROM" ERASER 

Model UVS11E only $59.95 
Holds (4) chips at a time. 
Special holding tray with 
UVA Absorber. Exclusive 
safety interlock system. 

Backed by 45 years UV experience. 



WOW 1771 FLOPPY SPECIAL 

LO While they last $32.95 
GD regular price $55.95 

CN Western digital P/N 1771A 
00 with App. Note & Data 

Only 100 units available 



THE FIRST TO OFFER PRIME PRODUCTS TO THE HOBBYIST 
AT FAIR PRICES NOW LOWERS PRICES EVEN FURTHER' A39 

1. PrOVOTI QlJdlity Factory tested products only, no re tests 
or fallouts. Guaranteed money back. We stand behind our products. 

2. Same Day ShiplllCnt All prepaid orders with cashiers 
check, money order or charge card will be shipped same day as received 



MICROPROCESSORS 

•Z80 $2195 

Z 80A 29 95 

F 8 (38501 19 95 

2650 2«95 

CD 1802 19 9b 

R080A 17 9b 

808b 79 9b 

8008 1 1«9b 

7901 ?1 95 

7901A ?99b 

TMS 9900JL 89 9b 

CP1600 39 9b 

6607 19 9b 

IM6100 79 9b 

• 6800P 19 95 
6802P 3? 96 

SUPPORT DEVICES 

•3881 IZ80PIO) $12 95 

•3882IZ80CTCI 12 95 

3861 IF 8 Program! 14 96 

3853 IFBMrmoty I/O! 14 96 

871? 8 bit I/O 3 60 

8714 Priority Interrupt 9 96 

8716 But dnyer 3 76 

8774 Clock Gen 4 85 

8774 4 4MH/CLKGen 17 96 

•8T26 Busdnver . 2 25 

8726 Busdr.ver 3 95 

8228 Syt Controller 7 95 

8238 Sy« Controller 9 96 

8251/9551 Prog Comm I/O 1196 

8263 Interval Timer 21 96 

8255/9655 Prog Periph I/O 1196 

8257 DMA Control 32 96 

8269 Prog Interrupt 32 96 

6810 1 128 x 8 HAM 4 95 

• 6820 PIA 7 95 

6834 1 EPROM 4K 14 95 

6834FPROM4K 16 96 

6860 ACIA 9 96 

6852 Serul Adapter 1 1 96 

6860 Modem 14 96 

6862 RPS Modulator 1 7 96 
•6871B 1 MH, Clock OSC 26 95 

6880 MPU Busdr.ver 2 96 

68 Mini I Mm, bug 2 49 96 

68 Mmlll Mimbug 3 74 96 
6831/10224 Micro Assembler Rom 30 00 

6831/11003 Proto Rom 30 00 

1821SCD IK RAM 15 96 

1822SCD 256 > 4 RAM 16 96 

1824CD 32 « 8 RAM 9 96 

1852CO 8 bit I/O 10 96 

1866CD I/O 8 96 

1857CD I/O 8 96 

PROM'S 

•2708 $14 95 

2708S 650m< 9 75 

1702A 7 95 

•1702 6 3 50 

5204 16 96 

• IM5610 2 95 
6834 16 95 
6834 1 14 96 
82S123 2 95 
82S126 4 50 
87S129 2 96 
8223 2 96 
5203 6 96 
Programming Available 

RAMS DYNAMIC 

• 4115 S1895 
4116 16K 34 96 
TMS4060 4 96 
TMS4060 77 pin 4 25 
WD4060 22 pin 3 25 
4096 16 pin 4 95 
2104 4 95 
2107 3 96 
•2107B4 4 25 
MM6261 3 95 
MM6262 1 96 
MM5270 4 96 
MM6780 4 96 
1103 196 
4008 I 2 96 

FLOPPY DISK 

WD 17/1 Floppy O M 

Wl> 1//1 H01 62 9b 



ICHARACTER GENERATORS 

R032513 Upper 5V 810 96 

R032613 Lower 6V 9 95 

HD0165 9 96 

MC6571A 10 80 

MC6574 14 60 

MC6575 14 50 

KEYBOARD ENCODERS 



STATIC RAM HEADQUARTERS 



Wt- NMMvaM Utijrsl uivrniiwy >il Sl«l.» 
R»rns in lilt- Wrtl 

I ?* 7b W 

• 711021460 m I 130 126 

?1L0/I?b0rsi I lib 140 

710? 1 7b I IS 

710? 1 I 30 I 7% 

9H07APC I >l I *b 

7U11 1 * 7b 4 10 

7HI 1 4 '0 lit 

71171 100 7(0 

71101 1 7 9b 7 4b 

7101 1 ?<*,?*> 

/IKItSOm I 1/ f 1/ n 



7114l4b0 •" > 
4 700 A 

• up04 10 '47001 

4407 
biniL I 

;4ca<j 

MM 

4S99 

MS 119 

MS TOO 

MS70I 

110IA 

110/ 



A TO D CONVERTORS 



8700CJ 
8701CN 
8760CJ 
140818 
• 148L6 



DISPLAYS/OPTO 

OL 704/707 CC/CA 300 

FND369CC 357 

FND 500/607 CC/CA 600 

FND 503/510 CC/CA 500 

FND 800/807 CC/CA 800 

Bowmar 9 d.gii bubble 

FSC 8074 4 digit CC 800 I 

HP7340HF X Display 1! 

TIL 306 5 • 7 Array I 

TIL 306 7 tegw/logic I 

TIL 308 7 teg w'logic I 

TIL 309 7 veq w/logic 

TIL 311 HEX Drsplay I 

MA 1003 1? auto clock 1 

MA 1007 4 digit clock module < 

MA 1010 4 digit clock module I 

NSN 373/374 dual CC/CA 300 

NSN 583/584 dual CC/CA 600 

NSN 783/784 dual CC/CA 700 

4N25 0pto Isolater 3/ 

MCT 2 0pto Isolaier 

4N33 Darlington I SOL 

Red Led s 186 Dia 5/ 

Green/Yellow 4/ 



LS163 
LS164 
LSI 74 
LSI 75 
LS190 
LSItl 
LS192 
LS193 
LS194 
LS196 
LS251 
LSZ53 
LS»7 
LS76S 
LS27» 
LS783 



LS367 

LS3M 

LS377 

74200 

74251 

74279 

7479C 

74366 

7436* 

74367 

74368 

LS378 

81LS96 

81LS96 

81LS97 

•1LSM 



SOCKETS 



8 Pin ww 
14 Pin ww 
16 Pin ww 
18 Pin ww 
20 ww 
22 Pin ww 
24 Pin ww 
40 Pin ww 



8 Pin S T 
14 Pin ST 
16 Pin S'T 
18 Pm ST 
22 Pin S'T 
24 Pin S/T 
28 Pin S/T 
40 Pin S/T 



MONTHLY SPECIALS 

up D371 Mag Tape Control $49 95 

AV5 3660 4 3/4 Digit DVM 24 96 

UK 5007/6009 Counter 6 96 

AV5 3607 DVM Chip 12 96 

ICM7208IPI Ctr Ditp'Dn* 16 96 

ICM7209 IPI Ctr/Dn.er 19 96 

ICM7046 IP* Slop Watch 18 96 
G1 15M 6 Channel MOS FET SW 160 

4116/416 16K Dynamrc RAM 34 95 
Intel 3404 6 bit Latch 2 96 

1488 1489 HS232 Dfivef 1 25 

8T97 Buffer 1 26 

8130/8131 2 45 

8833/8835 1 99 

74367/74368 6/5 00 

7b4bl'b7/b3 10/2 SO 

8T26 2/4 50 

78L05 2/1.00 
LM318H 1 00 

4N25 Opto/lso .69 



CONNECTORS 

6 Pin Single S/E 1 

15/30 Dual S/E 1 

18/36 Dual S/E 2 

22/44 Dual S/E 2 

43/86 Dual S'T • 

43/86 Dual IrV/W 6 

50'100 IMSAI W/W 4 

60/100 IMSAI S/T 4 

50/100 AltairW/W 5 

50/100 Acteic S/T 5 



26 Pin D Subminature 


DB26P 


325 


DB26S 


3 75 


H.,.*1 


1 26 



IMSAI Card Guidei 



4/1 00 



RS232 

CONNECTOR 

SET 

W/Hood 

$6 60 



CRYSTALS 



1 0MH 3 $ 
20 

2 097152 
24576 

3 579545 
40 

4 194304 

4 91520 
50 

5 7143 
60 



10 0rV1H 3 

13 

14 31818 
18 

18 432 
200 
22 1184 
27 000 
36 000 
48 000 
100KC 1 



NEW CTS DIPSWITCHES 



CTS206 4 
CTS206 5 
CTS206 6 
CTS207 7 



SI 75 
SI 75 
SI 75 
SI 75 



CTS708 8 St 96 
CTS209 9 SI 95 
CTS209 10 SI 96 



AV523/6 
AV63600 



S14 95 
14 9b 



UARTS/USRTS 



AVb1013A I5VI 
TR1602B <5VI 
AV51014 15 14VI 
AV51015I6VI 
IM6402 (bVI 
IM6403I5VI 
S2360 
WI)lfi/1H A sir, is 



BAUD RATE GENERATORS 



MC 14411 
WD1941 Dual 
34702 

TV CHIPS 

•MM5320 TV Synch . 
MM6369 Pretcaler 
MM67100 Game Chip 
MM57104 Clock 
LM 1889 Modulator 
CW300 Saw Function 
A V 38600 1 TV Game 
AY 38600 1 Color TV Game 
AV38615 1 Color Conyertei 
• AY38700 1 Tank Chip 
RF Modulator 



$11 95 
995 
1395 



ORGAN CHIPS 



MMbbM 
MMbbbb 
MMbbb6 



II each) 



NSC Set 
S19 9b 



CLOCK CHIPS 



MM6314 
MM6316 
MM63/'. 



74LS00 TTL 




74LSOO 


22 


IS86 


55 


LS02 


24 


LS90 


1 10 


LS04 


24 


LS92 


1 10 


LSOb 


28 


LS93 


1 10 


LS06 


78 


LS96 


1 69 


LS10 


28 


LS107 


56 


LS13 


79 


LS109 


56 


LS14 


1 69 


LSI 12 


56 


LS20 


26 


LSU3 


56 


LS27 


38 


LSI 23 


99 


LS30 


26 


LS132 


1 10 


LS32 


34 


LS136 


99 


LS40 


26 


LS138 


1 39 


LS42 


1 10 


LS139 


1 49 


LM1 


26 


LS151 


149 


LS73 


66 


LS153 


1 29 


LS74 


66 


LS166 


149 


LS75 


79 


LS157 


1 29 


LS76 


59 


L5168 


1 29 


LS83 


1 69 


LS161 


1 3* 


LM 


1 99 


IS162 


1 39 



SPECIAL 7/$1 00 

7406 MPS6630 
7416 MPS3568 
7438 MPS6516 
7440 MPS6522 



SPECIAL 


2/$1 00 


7442 


74123 


7490 


74145 


7493 


74153 


7496 


74LS195 



MCT? 

7N3638A 

2N3640 

2N 2369A 

2N3692 

MSPS4318 

MPS6401 

MPS6618 

MPS6b44 

MPS3668 

MPS6522 

MPS404A 

2N5462 



S 89 
5/1 00 

5/1 00 
5/1 00 
5/1 00 
5/1 00 
5/1 00 
6/1 00 
5/1 00 
6/1 00 
5/1 00 
b'1 00 
6/1 00 



•♦PS364? 
i*PS6571 
MPS 3693 
MPS6530 
MPS3646 
7525J 
7524J 
74S768 
7489 
74145 
74M55 
7160C 
74199 



We also stock full of 7400. 
74LS, 74L Linear and CMOS 
Send for pricing or use our 
competitors STD catalog 
pricing. 

NEW 

1978 CATALOGUE 

AVAILABLE FEB. 

SEND .25 POSTAGE 



COMP KITS& SYSTEMS: 

MEK680002K.I S235 00 

KIM1 6502 245 00 

FVK99 6800 Kit 133 00 

Techmco 9900 Kit 799 00 

Intercept Jt 6100 K.I 28100 

lain 8080 Computer Book 499 00 

NSC SC'MP Kit 99 00 

NSC Keyboard Kit 95 00 
Low Cent S 100 BUS with 8 slots 

& Power Supply lb9 95 

8K Ram Kit (Logos II 125 96 

By tenser 8K E prom Kit 64 95 

7PII K.t 17801 295 00 

TDL 2PU Kit 17801 269 00 

Tarbell cattene I/O 115 00 
S100 8 dot Motherboard with 

connectors teapandablel 69 9b 

S100 Entender Board lb 96 

S100 Proto Board 27 96 

Vector 8800 Proto Board 19 96 

IMSAI 8080 w 22 dot 699 00 

Cromemco Z 2 696 00 

TDL XITAN alpha 1 769 00 

Computalker 385 00 

Heuristics Speechlab 299 00 

SOROC IO120 Terminal 996 00 

8K Ram Board II ogotl 2196 

8K Eprom Board 21 95 

S100 32K Ram Kit 875 00 

Bytesas<er K.t 1 45 00 



NOTICE 

We are looking for software 
support packages to offer in 
our new catalogue. Please 
write or call if you want to 
participate. 



UPS -nel.'is 
Is.iiic1l.rni .i.srl 
S 100 00 «1cl ?b 



All Shipments FCM 

mirier S 100 00 Kt<t 

IHlst.iifV Orders <tv. 

Ii.i. idling r* pnst.ige M.isterch.u g. B.irsk 

.ml. -r .cud COD accepted sv ?b di'IMIsil 

Cildorisi.t Residents ,idd 6 t.i* F nieiqn 

Ordets ulrl H li.nsdluig All |i,ut> prune 

l.ictoiy tested gu.ir .lilleed S.irile day 

shipment Add 7b cents lot Dat.i 

Mi . t-i p. ir mii| tn.iv Mttj i. ii»ti Mil O. iiei e . mg 



P. 0. BOX 17329 Irvine, California 92713 New Phone (714) 558-8813 

TELEX/TWX: 910 595 1565 



Retail Store Open Mon. - Sat. 
Located at 1310 "B" E. Edmger, 
Santa Ana, CA 92705 



129 



COMPUTE!) CORNUCOPIA 



8Kx8 

Econoram II 



unis* 






Kit $135 

Assembled $155 

3 kits for $375 

This is the board that thousands of owners 
swear on, not at. There are lots of reasons, 
such as unique addressing options, reliability, 
full buffering, static operation, fast access 
time, a full set of sockets ... but probably 
the most popular feature is the price, which is 
all the more remarkable because of the high 
level of quality. One owner reviewed this 
board in the 1/77 issue of Kilobaud, closing 
with the words "If you're not convinced by 
now that the Econoram II is one of the best 
memory buys on the market today, you really 
have to be one tough cookie— either that or 
you work for someone else who makes 
memory boards". 



MESSAGE : 

Now you can have the quality of Godbout 
products and the convenience of local shop- 
ping . . many computer stores and other 
electronic outlets stock a number of our items, 
from individual components to complete board 
kits. 

We always welcome new dealers; if you 
have a store and want to know more about 
adding these popular products to your line, 
write or phone and ask for our dealer 
package. 

Finally, we'd like to add that even inveterate 
optimists such as ourselves have been 
amazed and delighted at the response to our 
computer kits. We thank you very much for 
your support (and your patience during our 
period of heaviest expansion); it will enable us 
to keep you excited with more new goodies in 
the months ahead. 



12K Econoram VI: $235 (Kit) 



M wwra , 



fMW, 






- -' 



4fc-- -.-/■- 'at-.. 



w-~» / 1 



4 



*&*+ ****** W 2>&** Z2L* * 









««pu.*, 



.A 



I 



We proudly welcome our newest memory 
board family member, designed from the 
ground up for full compatibility with the Heath 
Company H8. Organized as two independent 
blocks, one 8K and one 4K. Has the same 
basic features as our Econoram II™— all static 
design, switch selected protect and phantom, 



sockets for all ICs, full buffering on address 
and data lines— plus the required hardware 
and edge connector to mate mechanically with 
the H8. You can have our 12K board for the 
price of the Heath Company's 8K . . . with 
the performance you have come to expect from 
products carrying the Econoram trade mark. 



OTHER POPULAR ITEMS 



"8K X 8 ECONORAM III 1 "" Dynamic mem- 
ories have a reputation for low power, econ- 
omy — and difficulty of use. If you'd like to 
have the good without the bad, then this is the 
board for you. Not a kit; comes assembled, 
tested, and ready to run in any S-100 machine 
(Altair, IMSAI, etc.). Configuration as two 
separate 4K blocks. Zero wait states with 
8080 CPU. 1 year warranty. $149.00 

"Vector #8803 Bare 10 Slot Motherboard" 

This is a version of our 10 slot motherboard, 
but contains no edge connectors, active termi- 
nation circuitry, or other components — just 
the board. Great for experimenters or people 
with small systems who don't need the full 
kit $29.50 

"10 Slot Motherboard". Use with the IMSAI 
microcomputer as an add-on with room for 10 
peripherals, or for starting an 11 slot stand- 
alone system. Comes with all edge connec- 
tors, and includes an on-board active termina- 
tion circuit to minimize the crosstalk, noise, 
overshoot, and ringing that can occur with 
unterminated boards. Epoxy glass, solder 
masked board, with bypass caps and heavy 
power traces. #CK-015, $90.00. Kit form. 

"18 Slot Motherboard". Same as the 10 Slot 
Motherboard except with 18 slots. #CK-016, 
$124.00. Kit form. 

"12V 8A Power Supply". Handles 12A peaks 
with 50% duty cycle. Includes crowbar over- 
voltage protection, current limiting, adjustable 
output 11 -14V, custom wound transformer. 
Easy assembly: all parts except transformer/ 
filter cap/diodes mount on circuit board, in- 
cluding heat sinks and power transistors. 
While designed for powering automotive 
equipment in the home, many users report 
success using these for powering some disk 
drive systems. #HK-104, $44.50. Kit form. 
Please include sufficient postage. 

DB-25 RS-232 SUBMINI-D CONNECTORS 
Male plug, #CK-1004, $3.95; female jack, 
#CK-1005, $3.95; plastic hood for male con- 
nector, #CK-1006, SO 90. 



"Active Terminator Board". For those of you 
who have a motherboard without active ter- 
minations, plug in this card and obtain the 
benefits of improved signal transfer, thanks to 
less noise, crosstalk, ringing, and overshoot. 
Same circuitry as used in our motherboards. 
#CK-017, $29.50. Kit form. 






t 



•>• •> 



^■^^Rbr ■^^r 



"Interdesign Model 1101 Pulse Generator". 

Ideal for clocking TTL circuits, from .1 Hz to 2 
MHz. 20 to 1 frequency spread for each band. 
20% to 80% duty cycle minimum, fully trig- 
gerable. Portable for field use, and includes 
rechargeable nicads and charger for either 
battery charge or AC operation. If you don't 
have a pulse generator, here's one at a good 
price. #Z-006, $90.00. Fully assembled and 
tested. 
■ "■"«"■«■■«■■■■■■■■■■»■ 

We got our start in this business selling 
components to fanatical hobbyists who 
couldn't find the parts of their dreams any- 
where else. What with all the attention being 
lavished on our computer kits, music kits, and 
hobby kits, we wanted to take this opportunity 
to remind you that we still sell parts ... at the 
same outrageously low prices that got us go- 
ing in the first place. 

Need some resistors? Capacitors? Or maybe 
some ICs . . . CMOS . . . linears . . . mem- 
ories . . . Vector products (like the Slit-N- 
Wrap or wire pencil) ... or a really classy 
chassis to dress up your next project . . . 
we've got all that, and then some. 

How about an American made. Switchcraft 
RCA phono jack? (Closed circuit too — that's 
a rare bird). Comes mounted on a little plastic 
carrier with screw holes for easy mounting. At 
7 for $1 , here is a chance to stock up on some 
top quality connectors. 



74LS00 0.30 

74LS01 0.30 

74LS02 0.30 

74LS04 0.33 

74LS08 0.36 

74LS10 0.30 

74LS11 0.36 

74LS12 0.33 

74LS14 1.38 

74LS15 0.30 

74LS20 0.30 

74LS21 0.33 

74LS22 0.33 

74LS26 0.43 

74LS27 0.36 

74LS30 0.30 

74LS32 0.38 

74LS37 0.45 

74LS38 0.45 

74LS42 0.98 

74LS47 1.00 

74LS48 0.98 

74LS74 0.50 

74LS75 0.68 

74LS76 0.50 

74LS86 0.50 

74LS109 0.50 

74LS125 0.63 

74LS126 0.63 

74LS132 1.25 

74LS138 1.10 

74LS139 1.15 

74LS151 0.95 

74LS155 1.38 

74LS157 0.95 

74LS160 1.40 

74LS161 1.40 

74LS162 1.40 

74LS163 1.40 

74LS168 1.87 

74LS169 1.87 

74LS173 1.65 

74LS174 1.25 

74LS175 1.15 

74LS240 1.88 

74LS257 1.25 

74LS258 1.25 

74LS266 0.53 

74LS283 1.20 

74LS365/ 

80LS95 0.75 

74LS366/ 

80LS96 0.75 

74LS367/ 

80LS97 0.75 

74LS368/ 

80LS98 0.75 

74LS386 0.55 

74LS95 1.13 

74LS96 1.13 

74LS97 1.13 

74LS98 1.13 



©UIF 



TERMS: Please allow up to 5% for ship 
ping; excess refunded. Californians add tax 
COD orders accepted with street address for 
UPS For VISA® /Mastercharge® orders 
call our 24 hour order desk at (415) 
562-0636. Prices good through cover 
month of magazine. 



BILL GODBOUT ELECTRONICS 
BOX 2355, OAKLAND AIRPORT, CA 94614 



FREE FLYER: These are just a few of the 
items we carry for the computer enthusiast 
We also stock a broad line of semicon 
ductors. passive components, and hobbyist 
items. We will gladly send you a flyer 
describing our products upon receipt of 
your name and address. 

G4 



130 




NEW LSI TECHNOLOGY 

FREQUENCY COUNTER 

TAKE ADVANTAGE OF THIS NEW STATE-OF-THE-ART COUNTER FEATURING THE 
MANY BENEFITS OF CUSTOM LSI CIRCUITRY. THIS NEW TECHNOLOGY APPROACH 
TO INSTRUMENTATION YIELDS ENHANCED PERFORMANCE, SMALLER PHYSICAL 
SIZE DRASTICALLY REDUCED POWER CONSUMPTION [PORTABLE BATTERY 
OPERATION IS NOW PRACTICAL], DEPENDABILITY, EASY ASSEMBLY AND 
REVOLUTIONARY LOWER PRICING! 

KIT#FC-50C 60 MHZ COUNTER WITH CABINET & P.S 

KIT#PSL-650 650 MHZ PRESCALER [not shown] 29.95 

COUNTER WIREO. TESTEO & CAL 165.95 

COUNTER WIRED, TESTED k^A^^^ 199.95 

SIZE: 



$11095 

■3 COMPLETE! 






MODEL #FC-50WT eo mhz 

MODEL#FC-50/600WT. eoo mhz 



&g 



-* 



OPTOlliCT«0»i£»jj£ C 



r 3 p 

L 1 J L 

M J. u -* 



*«eou6*icj 



POWER 



L fAO ZC*0 



l/iostc 



GATC 



ItEC 



**• I'liNOHilTlOllfO- 



•0 16 w 



mo 



MI*CAII 



0«*»iC 



3" High 

6" Wide 

5 1 / 2 "Deep 

FEATURES AND SPECIFICATIONS: 

DISPLAY 8 RED LED DIGITS .4" CHARACTER HEIGHT 
GATE TIMES: 1 SECOND AND 1/10 SECOND 
PRESCALER WILL FIT INSIDE COUNTER CABINET 
RESOLUTION: 1 HZ AT 1 SECOND, 10 HZ AT 1/10 SECOND. 
FREQUENCY RANGE: 10 HZ TO 60MHZ. [65 MHZ TYPICAL). 
SENSITIVITY 10 MV RMS TO 50 MHZ. 20 MV RMS TO 60 MHZ TYP. 
INPUT IMPEDANCE: 1 MEGOHM AND 20 PF. m ^~* , 

[DIODE PROTECTED INPUT FOR OVER VOLTAGE PROTECTION.) 
ACCURACY ♦ 1 PPM II 0001 °b ); AFTER CALIBRATION TYPICAL. 
STABILITY. WITHIN 1 PPM PER HOUR AFTER WARM UP [001% XTAL] 
IC PACKAGE COUNT: 8 [ALL SOCKETED) 
INTERNAL POWER SUPPLY. 5 V DC REGULATED. 
INPUT POWER REQUIRED: 8-12 VDC OR 115 VAC AT 50/60 HZ. 
POWER CONSUMPTION. 4 WATTS 



KIT #FC-50CIS COMPLETE WITH PREDRILLED CHASSIS ALL HARDWARE AND STEP-BY-STEP INSTRUCTIONS. 
WIRED & TESTED UNITS ARE CALIBRATED AND GUARANTEED. 



PLEXIGLAS CABINETS 

Great for Clocks or any LED 
Digital project Clear-Red 
Chassis serves as Bezel to 
increase contrast of digital 
CABINET I displays 

3"H,6%"W.5tt"D Black. White or 

CABINET II C,ear Cover 

2tt"H,5"W.4"P $6.50 ea 



REDORGREYPLEXIGLASFOR DIGITAL BEZELS 



3"x6"x1/8" 



ea 



>EE THE WORKS Clock Kit 

C l«ar Pl«x Iglat Stand 



■ MftH 



•6Big 4" digits 

• l2or24hr time 
•3 set switches 

• Plug transformer 

• all parts included 

Plexigtas is 
Pre-cut & drilled 

Kit #850-4 CP 
Size 6 H.4Vi W,3 D se tnV>t e< * 
$2^50 * '*« *rtf*9* 



V 



2/*45. 



XTAL TIME BASE 

Will enable 
Digital Clock Kits 
orClock-Calendar 
Kits to operate 
from 12V DC 
1 x2 PC Board 
Power Req 5-1 5V 
(2.5MA. TYP.) 
Easy 3 wire hookup 
Accuracy ± 2PPMJ 
#TB-1 (Adiustable) 
ompleteKit M95 

ir &Cal $9,951 



SPECIAL PRICING! 

PRIME - HIGH SPEED RAM 

21 L02-3 «0& 

LOW POWER - FACTORY FRESH 

1-24 $1.75 ea. 100-199 $145 ea. 
25-99 1-60 ea. 200-999 139 ea 

•1.29 



1000 AND OVER 



ea. 



700/ 



rTHAT WANTS THE BEST. FEATURING 12 OR 24 HOUR TIME - 
FOR THE BUILDER THAT WAN T» rr ^ CALEN0AR ALA RM. SNOOZE AND AUX TIMER CIRCUITS 

Will alternate time (8 seconds) and date (2 seconds) or may be wired for time or date display only, 
with other functions on demand. Has built-in oscillator for battery back-up. A loud 24 hour alarm 
with a repeatable 10 minute snooze alarm, alarm set & timer set indicators. 
VAC/6OH2 power pack with cord and top quality components through-01 



KIT 



7001BWITH6 5 DIGITS $39 95 

7001C WITH 4 6 DIGITS & 

2 3 DIGITS FOR SECONDS $42.95 

7001X WITH 6 6 DIGITS $45.95 



7001 C 
DISPLAY 



JUMBO DIGIT CLOCK 

A complete Kit (less Cabinet) featuring : 
six .5" digits, MM5314 IC 12/24 Hr. 
time, PC Boards, Transformer, Line 
Cord, Switches and all Parts. Ideal Fit 
in Cabinet II 

$ 19 95 



Kit #531 4-5 



2/*38. 



$Q95ea 



0lc?-<?^!S'3 



KITS ARE COMPLETE (LESS CABINET) 

ALL7001 KITSFITCABINETI ANDACCEPT 



aasasB 



7001 X DISPLAY 7001 B DISPLAY 

QUART2CRYSTAL TIME BASE KIT » TB 1 






JUMBO DIGIT $m 

CONVERSTION KIT «J 
Convert small digit LED clock to large 
.5" displays. Kit includes 6 - LED's, 
Multiplex PC Board & Hook up info. 
Kit #JD-1CC For Common Cathode 
Kit #JD-1CA For Common Anode 



PRINTED CIRCUIT BOARDS for CT 7001 Kits 
sold separately with assembly mfo. PC Boards are 
drilled Fiberglass, solder plated and screened 
with component layout. 



AUTO BURGLAR 
ALARM KIT 

AN EASY TO ASSEMBLE ANOEASV TO INSTALL 
ALARM PROVIOING MANY FEATURES NOT 
NORMALLY FOUND KEYLESS ALARM MAS 
PROVISION FOR POS * GROUNDING 
SWITCHES OR SENSORS WILL PULSE MORN 
RELAY AT 1M2 RATE OR DRIVE SIREN KIT 
PROVIDES PROGRAMMABLE TIME DELAYS 
FOR EXIT ENTRY 4 ALARM PERlOO UNIT 
MOUNTS UNDER DASH REMOTE SWlTCM 
CAN BE MOUNTED WMERE DESIRED CMOS 
RELIABILITY RESISTS FALSE ALARMS * 
PROVIDES FOR ULTRA DEPENDABLE ALARM 
DO NOT BE FOOLEDBY LOW PRICES' THIS IS A 
TOP QUALITY COMPLETE HIT WITH ALL PARTS 
INCLUDING DETAILED DRAWINGS AND IN 
STRUCTIONS OR AVAILABLE WIRED ANO 
TESTEO 



ki^il 



KIT#ALR-1 
$9.95 

#ALR-1WT 

WIRED& 

TESTED 

.19.95 



Specify for 7001 

B.CorX $7.95 

VARIABLE REGULATED 

1 AMP 
POWER SUPPLY KIT 

• VARIABLE FROM 4 to 14V 

• SHORT CIRCUIT PROOF 

• 723 IC REGULATOR 

• 2N3055 PASS TRANSISTOR 

• CURRENT LIMITING AT 1 Amp 
KIT IS COMPLETE INCLUDING 
DRILLED & SOLDER PLATED 
FIBERGLASS PC BOARD AND 
ALL PARTS (Less TRANS- 
FORMER) KIT0PS-01 *6.9S 
TRANSFORMER 24V CT will 
provide 300MA at i2Vand 

1 Ampat5V. $3.50 



I1W3ILE LEO CLOCK 



I3D1E 




&**\H" DIBITS! 

MODEL 12 VOLT AC or 
#2001 DC POWERED 

. 6JUMBO 4" RED LED'S BEHIND RED FILTER LENS WITH CHROME RIM 

» SET TIME FROM FRONT VIA HIDDEN SWITCHES • 12/24-Hr. TIME FORMAT 

. STYLISH CHAHCOAL GRAY CASE OF MOLDED HIGH TEMP. PLASTIC 

. BRIDGE POWER INPUT CIRCUITRY - TWO WIRE NO POLARITY HOOK-I 

• OPTIONAL CONNECTION TO BLANK DISPLAY [Use When Key Off in Car, Etc. 

• TOP QUALITY PC BOARDS & COMPONENTS - INSTRUCTIONS. 

• MOUNTING BRACKET INCLUDED m yAC 4# ^ f 
KIT #2UG1 a^— »e o no MrOR _ .' #«»V 



COMPLETE KIT 



3 OR 
MORE 



Power Pack 
*AC-1 



EA. 



ASSEMBLED UNITS WIRED & TESTED 

ORDER #2001 WT [LESS 9V. BATTERY] 

Wired for 12-Hr. Op. if not otherwise specified. 



3 OR 
MORE 



JJea 



OPTOELECTRONICS. INC. 



BOX 219 HOLLYWOOD, FLA. 33022 
PHONE [305] 921-2056 / 921-4425 



03 



ORDER BY PHONE OR MAIL 
COD ORDERS WELCOME 



ORDERS TO USA & CANADA ADD t% FOR SHIPPING, 
HANDLING & INSURANCE. ALL OTHERS ADD 10%. 
ADDITIONAL $1.00 CHARGE FOR ORDERS UNDER 
$15.00 - COD FEE $1.00. FLA. RES. ADD «% STATE 
TAX. 




131 



r^Rf 



7400N TTL 



^W 



SN7400N 

SN7401N 

SN7402N 

SN7403N 

SN7404N 

SN7405N 

SN7406N 

SN7407N 

SN7408N 

SN7409N 

SN7410N 

SN7411N 

SN7412N 

SN7413N 

SN7414N 

SN7416N 

SN7417N 

SN7420N 

SN7421N 

SN7422N 

SN7423N 

SN7425N 

SN7426N 

SN7427N 

SN7429N 

SN7430N 

SN7432N 

SN7437N 

SN7438N 

SN7439N 

SN7440N 

SN7441N 

SN7442N 

SN7443N 

SN7444N 

SN7445N 

SN7446N 

SN7447N 

SN7448N 

SN7450N 

SN7451N 

SN7453N 

SN7454N 

SN7459A 

SN7460N 

SN7470N 



16 

18 

20 

20 

20 

20 

35 

35 

20 

25 

20 

30 

35 

69 

70 

35 

35 

20 

39 

49 

37 

29 

29 

37 

42 

25 

25 

35 

35 

25 

21 



75 
.75 
75 
89 
69 
89 
25 
25 
25 
25 
25 
.25 
45 



SN7472N 

SN7473N 

SN7474N 

SN7475N' 

SN7476N 

SN7479N 

SN7480N 

SN7482N 

SN7483N 

SN7485N 

SN7486N 

SN7488N 

SN7489N 

SN7490N 

SN7491N 

SN7492N 

SN7493N 

SN7494N 

SN7495N 

SN7496N 

SN7497N 

SN74100N 

SN74107N 

SN74109N 

SN74116N 

SN74121N 

SN74122N 

SN74123N 

SN74125N 

SN74126N 

SN74132N 

SN74136N 

SN74141N 

SN74142N 

SN74143N 

SN74144N 

SN74145N 

SN74147N 

SN74148N 

SN74150N 

SN74151N 

SN74153N 

SN74154N 

SN74155N 

SN74156N 

SN74157N 



39 
39 
35 
50 
35 
500 
50 
99 
70 
89 
39 
350 
2 49 
45 
75 
49 
49 
79 
79 
79 
300 
1 25 
39 
95 
1 9b 
39 
39 
50 
60 
60 
1 25 
95 
1 15 
295 
325 
300 
1 15 
235 
200 
1 25 
79 
89 
1 25 
89 



SN74160N 

SN74161N 

SN74162N 

SN74163N 

SN74164N 

SN74165N 

SN74166N 

SN74167N 

SN74170N 

SN74172N 

SN74173N 

SN74174N 

SN74175N 

SN74176N 

SN74177N 

SN74179N 

SN74180N 

SN74181N 

SN74182N 

SN74184N 

SN74185N 

SN74186M 

SN74187N 

SN74188N 

SN74190N 

SN74191N 

SN74192N 

SN74193N 

SN74194N 

SN74195N 

SN74196N 

SN74197N 

SN74198N 

SN74199N 

SN74200N 

SN74251N 

SN74279N 

SN74283N 

SN74284N 

SN74285N 

SN74365N 

SN74366N 

SN74367N 

SN74368N 

SN74390N 

SN74393N 



1 25 
99 

1 95 
99 
99 
99 

1 25 
325 

2 10 
600 
1 50 

1 25 
99 
79 
79 

2 49 
99 

249 
95 
1 95 
1 95 
1500 
600 

3 95 
1 79 
1 25 

89 

89 

1 25 

75 

1 00 

1 00 

1 75 

1 75 

559 

1 79 

90 

225 

600 

600 

75 

75 

75 

75 

225 

225 



20% Discount for 100 Combined 7400 s 



CD4000 
CD4001 
CD4002 
CD4006 
CD4007 
CD4009 
C04010 
CD4011 
CD4012 
CD4013 
CO4014 
C04015 
C04016 
CD4017 
CD4018 
CD4019 
C04020 
CD4021 
C04022 
CD4023 
CD4024 
CO4025 
CD4026 
CO4027 
CD4028 
CD4029 
CD4030 
CD4035 
CD4040 
C04041 
C04042 



23 

23 

23 

1.19 

25 

49 

49 

23 

25 

39 

1 39 

1 19 

49 

1.19 

99 

49 

1 19 

1 39 

1.19 

23 

79 

23 

225 

69 

89 

1.19 

49 

99 

1.19 

1 25 

99 



CMOS 



CD4044 

CD4046 

CD4047 

CD4048 

CD4049 

CD4050 

CD4051 

CD4053 

CD4056 

C04059 

CD4060 

CD4066 

C04068 

CD4069 

CD4070 

CO4071 

CD4072 

CO4076 

C 04081 

CD4082 

CD4098 

MC14409 

MC14410 

MC14411 

MC14419 

MC14506 

MC 14507 

CD4508 

CD4510 

CD4511 

CD4515 

CD4518 



89 

1 79 

250 

1 35 

49 

49 

1 19 

1 19 

1 49 

995 

1 49 

79 

39 

45 

55 

23 

49 

1 39 

23 

23 

249 

14 95 

1495 

14 95 

4 95 

75 

99 

395 

1 39 

1 29 

295 

1 29 



CD4520 
MC14562 
C04566 
MC14583 
74C00 
74C00 
74C02 
74C04 
74C10 
74C14 
74C20 
74C30 
74C42 
74C73 
74C74 
74C89 
74C90 
74C93 
74C95 
74C107 
74C151 
74C154 
74C157 
74C160 
74C161 
74C163 
74C164 
74C173 
74C193 
74C195 
(J0C95 
80C97 



1 29 

1450 

225 

350 

Santt 

39 

55 

75 

65 

300 

65 

65 

215 

1 50 

1 15 

400 

300 

200 

200 

1 25 
290 
300 

2 15 
325 
325 
300 
325 
260 
275 
2 75 
1 50 
1 50 



LM3U0H 

LM301H 

LM301CN 

LM302H 

LM304H 

LM305H 

LM307CN 

LM308H 

LM308CN 

LM309H 

LM309K 

LM310CN 

LM311H 

LM311N 

LM317K 

LM318CN 

LM319N 

LM320K 5 

LM320K-52 

LM320K-12 

LM320K-15 

LM320T 5 

LM320T-5 2 

LM320T-8 

LM320T-12 

LM320T 15 

LM320T-18 

LM320T-24 

LM323K-5 

IM324H 

LM339N 

LM340K-5 

LM340K-6 

LM340K 8 

LM340K-12 

LM340K-15 

LM340K-18 

LM340K-24 

LM340T-5 

LM340T-6 



80 

35 

35 

75 

1 00 

60 

35 

1 00 

1 00 

1.10 

1 25 

1 15 

90 

90 

650 

1 50 

1 30 

1 35 

1 35 

1 35 

1.35 

125 

1 25 

1 25 

1 25 

1 25 

1 25 

1 25 

595 

180 

99 

1 35 

1 35 

1 35 

1 35 

1 35 

1 35 

1 35 

1 25 

1 25 



LINEAR 



LM340T-8 

LM340T-12 

LM340T-15 

LM340T-16 

LM340T-24 

LM350N 

LM351CN 

78MG 

LM370N 

LM373N 

LM377N 

LM380N 

LM380CN 

LM381N 

LM382N 

NE501K 

NE510A 

NE529A 

NE531H 

NE536T 

NE540L 

NE550N 

NE555V 

NE560B 

NE561B 

NE562B 

NE565H 

NE565N 

NE566CN 

NE567H 

NE567V 

LM703CN 

LM709H 

LM709N 

LM710N 

LM711N 

LM723H 

LM723N 

LM733N 



1 25 

1 25 

1 25 

1 25 

1 25 

1 00 

65 

1 75 

1 15 

3 25 

400 

1 25 

99 

1 79 

1 79 

800 

600 

495 

300 

600 

600 

1 30 

39 

500 

500 

500 

1 75 

1 25 

1 75 

1 95 

1 49 

45 

29 

29 

79 

39 

55 

55 

1 00 



LM739N 

LM741CH 

LM741CN 

LM741-14N 

LM747H 

LM747N 

LM748H 

LM748N 

LM1303N 

LM1304N 

LM1305N 

LM1307N 

LM1310N 

LM1351N 

LM1414N 

LM1458CN 

LM1496N 

LM 1556V 

LM2111N 

LM2901N 2 

LM3053 1 

LM3065N 

LM3900N(3401) 

LM3905N 

LM3909 

LM5556N 

MC5558V 

LM7525N 

LM7534N 

8038B 

LM75450 

75451CN 

75452CN 

75453CN 

75454CN 

75491CN 

75492CN 

75494CN 

RC4151 

RC4194 

RC4195 



1 19 

35 

35 

39 

79 

79 

39 

39 

90 

1 19 

1 40 

85 

295 

1 65 

1 75 

59 

95 

1 75 

1 95 



95 

50 

69 

49 

89 

1 25 

1 85 

1 00 

90 

75 

495 

49 

39 

39 

39 

39 

79 

89 

89 

595 

595 

3 25 



74LS00 

74LS02 

74LS03 

74LS04 

74LS05 

74LS08 

74LS10 

74LS13 

74LS14 

74LS20 

74LS26 

74LS27 

74LS28 

74LS30 

74LS32 

74LS40 

74LS42 

74LS47 

74LS51 

74LS55 

74LS73 

74LS74 



29 
29 
29 
35 
35 
29 
29 
69 
1 75 
29 
39 
39 
39 
29 
39 
39 
1 25 
1 25 
29 
29 
49 
49 



74LS00 TTL 



74LS76 

74LS83 

74LS85 

74LS86 

74LS90 

74LS92 

74LS93 

74LS95 

74LS96 

74LS107 

74LS109 

74LS112 

74LS123 

74LS132 

74LS136 

74LS138 

74LS139 

74LS151 



49 

1 75 

249 

49 

89 

89 

89 

1 50 

1 89 

59 

59 

59 

1 25 

1 25 

59 

1 25 

1 25 

1 25 



74LS155 
74LS157 
74LS160 
74LS161 
74LS162 
74LS163 
74LS164 
74LS175 
74LS181 
74LS190 
74LS191 
74LS192 
74LS193 
74LS194 
74LS195 
74LS253 
74LS257 
74LS260 
74LS279 
74LS367 
74LS368 
74LS670 



1 25 
1 50 
1 95 
1 95 
1 95 
1 95 
1 95 

1 95 
3 69 

2 49 
249 
2 49 
249 
1 89 
1 89 
1 75 
1 75 

55 
79 
99 
99 
395 



BUGB00K 

Continuing Education Series 




•U8MOK8 I and II 



$17.00 par tat 



*i pmw n nun. omm a. m*. wutni 

Sold as a set these two books outline over 90 experiments designed to teach 
me reader ad he vM nwd to know about TTL logic chips to ust them in con 
lunchon «nth microprocessor systtms You II leam about the basic concepts of 
digital electronics including gatas Dip-Hops, latches busts. decoders mud 
plexers. demultiplexers Lf displays. RAM s ROM s. and much much mors 



$5 00 



■U0BO0K III 

b» Htm N. Hm«. OmM 6 Lmaa, **J4HYJ 

This volume will introduce you to me fabulous UART chip that all important 
interlace between data terminals, etc . and your mtcfocompultr It also covers 
current loops and the RS 23?C interlace standard Particularly recommended 
tor any RTTY enthusiast 



$6 95 



THE 555 TIMER APPLICATIONS 

SOURCEBOOK WITH EXPERIMENTS 

by Mia m i < M. lertia 
This boo* shows you what the 555 timer is and how to use it Included are over 
100 various design techniques equations and graphs to create ready to go 
iimers. generators power supplies, measurement and control circuits party 
games circuits tor the home and automobile, photography music and 
Amateur Radio 



BUGB00K III 

by Pat* a awry. De*M 8 Una*. IW4NYJ. 



thm 



~fiT» 



INSTRUCTORS MANUAL $To6 

•♦ecessary tor instruction ol Bugboc* I and II Answers questions regarding 
e»penments suggestions tor further reading, philosophy ot authors approach to 
aigrtai electronics A must tor self-teaching individuals 

OP AMP MANUAL $t~00 

An expenmem guide to application of operational amplifiers Over 25 expen 
merits on ad phases of Op Amps 



Here is the boo* that puts it all together Besides having much valuable tot 
there are a series ot enpenments m which the reader completely explores the 
8080 chip pin by pen and introduces you to me Mar* 80 microcomputer a 
unique easily interfaced system N is recommended that you have the Dae* 
ground on the BUGBOOKS I 8 II before proceeding with BUGBOOK III 

BU6B00K TSn 



byOavMB Lane*. Peter R fttwy . Je«e»ea A Tltet 



$11.00 par Ml 



Expenmems m digital electronics 8080A -nicrocomputer programming and 
8080A microcomputer interfacing An integrated approach to self instructed 
basic digital electronics breadboarding and 8080A interfacing/programming 
Bugboot VI integrates the digital concepts ot Bugbooh V into a treatment of 
8080A microcomputer programming and interfacing Detail & laboratory 
experiments included with each book 



0BUG 

ton interpretive debugger 

assembly language programs 



$5.00 

A program tor entering debugging and storing 



CM0S-M — OESIGNERS PRIMER $6 00 

ANO HANDBOOK 

Starts at basic structure of CMOS devices thiough integration into MSI 



COMPLETE MANUAL FOR DIGITAL CLOCKS by John Weiss and John Brooks 

Familiarizes technician or hobbyist with basic theories behind digital clocks Includes trouble shooting guides, basic 

characteristics ot clocks, soldering techniques, clock component data sheets and construction tips 



$3 95 





125 


XC209 


Red 


XC209 


Green 


XC209 


Orange 


XC209 


Yellow 




200 


XC22 


Red 


XC22 


Green 


XC22 


Yellow 


XC22 


Orange 


SSL -22 


RT 



dia 



5/$1 
4 Si 

4/S1 
4*1 

5/$1 

4/$1 
4/$1 
4 $1 

4'$1 



DISCRETE LEDS 



XC526 
XC526 
XC526 
XC526 
XC526 



185 

Red 

Red 

Green 

Yellow 

Clear 



dia 



5$1 
100/$8 
4/$1 
4/S1 
4/S1 



XC556 
XC556 
XC556 
XC556 
XC556 
XC556 



200 

Red 

Red 

Green 

Yellow 

Orange 

Clear 



dia 



XC111 
XC111 
XC111 
XC111 
5/$1 
100/S8 
4/$1 
4$1 
4 $1 
7/$1 



190 

Red 
Green 
Yellow 
Orange 
085 
MV50 Red 6 $i 

iNfRA-ftfb LED 
It I '. » 1 16 

M 5£U» 



dia 

10 $1 
4$1 

4$1 
4/$1 

dia 



SALE DISPLAY LEDS 



SALE 



TYPE 

MAN 1 
MAN 2 
MAN 3 
MAN 4 
MAN 52 
MAN 71 
MAN 72 
MAN 74 
MAN 81 
MAN 82 
MAN 84 
MAN 3620 
MAN 3630 
MAN 3640 
MAN 4610 
MAN 4640 
MAN 4710 
MAN 4730 
MAN 4740 
MAN 4810 
MAN 6610 
MAN 6630 
MAN 6640 
MAN 6650 
MAN 6660 



POLARITY HT PRICE 

Common Anode-red 270 2 95 

5 x 7 Dot Matrix-red 300 4 95 

Common Cathode -red 125 4,'$1 

Common Cathode -red 187 195 

Common Anode-green 300 1 .00 

Common Anode -red 300 125 

Common Anode-red 300 79 

Common Cathode-red 300 150 

Common Anode -yellow 300 79 

Common Anode-yellow 300 .79 

Common Cathode -yellow 300 79 

Common Anode -orange 300 .79 

Common Anode -orange - 1 300 135 

Common Cathode -orange 300 79 

Common Anode-orange 300 79 

Common Cathode-orange 400 79 

Common Anode-red ±1 400 .79 

Common Anode-red 400 100 

Common Cathode -red 400 79 

Common Anode-yellow 400 100 

Common Anode orange -D D 560 79 

Common Anode-orange 560 79 

Common Cathode -orange D 560 79 

Common Cathode -orange a 1 560 .79 

Common Anode-orange J60 .79 



TYPE POLARITY HT PRICE 

MAN 6680 Common Cathode orange 560 79 

MAN 6710 Common Anode red- D 560 79 

MAN 6730 Common Anode red • 1 560 79 

MAN 6740 Common Cathode- red -0 D 560 79 

MAN 6750 Common Cathode-red '1 560 79 

MAN 6760 Common Anode-red 560 79 

MAN 6780 Common Cathode-red 560 '9 

DL701 Common Anode-red tl 300 1 00 

DL702 Common Cathode -red 300 1 25 

DL704 Common Cathode-red 300 99 

DL707 Common Anode-red 300 99 

DL741 Common Anode-red 600 1 49 

DL746 Common Anode red • 1 630 195 

0L747 Common Anode-red 600 149 

DL749 Common Cathode -red • 1 630 195 

DL750 Common Cathode -red 600 1 49 

0L33B Common Cathode-red 110 3/100 

FND70 Common Cathode (FN0359) 250 69 

FND503 Common Cathode (FND500) 500 99 

FND507 Common Anode (FND510) 500 99 

5082-7300 4 x 7 Sgl Digit RHDP 600 19 95 

5082-7302 4 x 7 Sgl Digit LHDP 600 19 95 

5082-7304 Overrange character (- 1) 600 15.00 

5082-7340 4 x 7 Sgl Digit Hexadecimal 600 22 50 



RCA LINEAR 



CA3013 
CA3023 
CA3035 
CA3039 
CA3046 
CA3053 
CA3059 
CA3060 
CA3080 
CA3081 



15 CA3082 
56 CA3083 
48 CA3086 
35 CA3089 
30 CA3091 
50 CA3102 
25 CA3123 
25 CA3130 
85 CA3140 
CA3401 
CA36O0 



200 



200 

1 60 
85 

3 75 
3 50 

2 95 
2 15 
1 39 
1 25 

49 
1 75 



XR 2206KB Kit $19.95 

WAVEFORM 
GENERATORS 

XR 205 $8 40 

XR 2206CP 550 

XR 2207CP 3 85 



EXAR 



MISCELLANEOUS 



STEREO DECODERS 

XR 1310CP $3 20 

XR-1310EP 3 20 

XR 1800P 3 20 

XR 2567 2 99 



XR 2211CP 
XR 4136 
XR 1468 
XR 1488 
XR 1489 
XR 2208 



XR-2206KA Kit $14.95 

TIMERS 

XR 555CP $ 49 

XR 320P 1 55 

XR 556CP 1 85 

XR 2556CP 3 20 

$6 70 XR 2240CP 4 80 

2 00 PHASE L0CKE0 LOOPS 

3 85 XR-210 5 20 
5 80 XR 215 6 60 

4 80 XR 567CP 1 95 

5 20 XR 567CT 1 70 



8 pin 
14 pin 
16 pin 
18 pin 
22 pin 

14 pin 
16 pin 
18 pin 
24 pin 

8 pin 
14 pin 
16 pin 
18 pin 

8 pin 
10 pin 
14 pin 
16 pin 
18 pin 



1-24 
$17 
20 
22 
29 
37 

$27 
30 
35 
49 

$30 
35 
38 
52 

$40 
45 
39 

43 
75 



2549 
16 
19 
21 
28 
36 

25 
27 
32 
45 

27 
32 
35 

47 

38 
41 
38 
42 
68 



IC SOLDERTAIL — LOW PROFILE (TIN) SOCKETS 




50 100 

15 

18 

20 

27 

M SOLDERTAIL STANDARD (TIN) 

24 
25 

30 
42 



24 pin 
28 pin 
36 pin 
40 pin 

28 pin 
36 pin 
40 pin 



SOLDERTA IL S TANDARD (GOLD) 

■ ■ ?4 pin 

?? ■ mMNQ 28 p |n 

,i 36 D,n 

43 40 pin 

WIRE WRAP SOCKETS (GOLD) LEVEL #3 

ssassassassasswl HHR n p,n 

37 VI 28 pin 

4' 36 pin 

62 40 pin 



1 24 

$38 

45 

60 

63 

$ 99 

1 39 
1 59 



$ 70 

1 10 
1 75 
1 75 

95 

$1 05 

1 40 

1 59 

1 75 



2549 
37 
44 
59 
62 

90 
1 26 
1 45 



63 
1 00 
1 40 
1 59 

85 

95 

1 25 

1 45 

1 55 



50 PCS. RESISTOR ASSORTMENTS $1 .75 PER ASST. 

1/1 nun (i r\i_ik» •■ !">..>■ .a -■ - - .„ n . 



50-100 
36 
43 
58 

61 

81 
1 15 
1 30 



57 

90 

1 26 

1 45 

75 

85 

1 10 

1 30 

1 40 



ASST. 1 
ASST. 2 
ASST. 3 
ASST. 4 
ASST. 5 
ASST. 6 
ASST. 7 

ASST. 8R 



5ea 



5ea 



5ea 



Sea 



5ea 



5ea 



5ea 



10 OHM 12 OHM 15 OHM 18 OHM 22 OHM 



27 OHM 

68 OHM 

180 OHM 

470 OHM 
1 2K 

3 3K 
8 2K 

22K 

56K 

150K 
390K 

1M 
2 7M 



J3 OHM 

82 OHM 
220 OHM 

560 OHM 
1 5K 

39K 
10K 

27K 

68K 
180K 
470K 

1 2M 
3 3M 



39 OHM 

100 OHM 
270 OHM 

680 OHM 
1 8K 

4 7K 
12K 

33K 

82K 
220K 
560K 

1 5M 
3 9M 



47 OHM 

120 OHM 
330 OHM 

820 OHM 
2 2K 

5 6K 
15K 

39K 
10OK 

270K 
680K 

1 8M 
4 7M 



56 OHM 
150 OHM 
390 OHM 
IK 
2 7K 

6 8K 
18K 

47K 
120K 

330K 
820K 

2 2M 
5 6M 



1/4 WATT 5% 50 PCS 



1/4 WATT 5% 50 PCS 



1/4 WATT 5-/. 50 PCS 



1/4 WATT 5% 50 PCS 



1/4 WATT 5% 50 PCS 



1/4 WATT 5% 50 PCS 



1/4 WATT 5% 50 PCS 



Includes Resistor Assortments 1 -7(350 PCS.) $9.95 ea. 



$5 00 Minimum Order — U.S. Funds Only 
California Residents — Add 6% Salas Tai 




Spec Sheets 2Se — Send 35v Stamp tor 1971 Catalog 
Dealer Information Available 



1978 
CATALOG 

NOW 
AVAILABLE 



1021 -A HOWARD AVE., SAN CARLOS. CA. 94070 

PHONE ORDERS WELCOME — (415) 592-8097 

Advertised Prices Good Thru April 



WIRE-WRAP KIT — WK-2-W 
WRAP • STRIP • UNWRAP 

• Tool for 30 AWG Wire 

• Roll of 50 Ft White or Blue 30 AWG Wire 

• 50 pes each 1. 2 ". 3 & 4 lengths — 
pre -stripped wire 



$11.95 




WIRE WRAP TOOL WSU-30 

WRAP • STRIP > UNWRAP -15.95 

WIRE WRAP WIRE — 30 AWG 



25ft. min. $1.25 
SPECIFY COLOR 



50 ft $1 95 100ft. $2.95 1000ft $15.00 
- White - Yellow - Red - Green - Blue - Black 



WIRE DISPENSER — WD 30 

• 50 ft. roll 30 AWG KYNAR wire wrap wire 

• Cuts wire to desired length 

• Strips 1 of insulation Specify — Blue -Yellow -White 



REPLACEMENT DISPENSER SPOOLS FOR WO 30 
Specify blue, yellow, white or red $1 



ea. 

SI 



I/! 



Prime 
Inventory 

p/w 

SW7401 
SW740/ 
SW7416 
SW7417 
SW7420 
SW7423 
SW7425 
SW7427 
SW7430 
SW7432 
SW7437 
SW7438 
SW7440 
SW7443 
SW7444 
SW7445 
SW7446 
SW7450 
SW7453 
SW7454 
SW7460 
SW7472 
SW7475 
SW7480 

Pre 



Stock 
Clearance 



STEWART WARNER 



101 min | 
$1 20/lot 
220 
220 
220 
130 
220 
1 70 
150 
150 
1 50 
150 
150 
120 
350 
350 
350 
400 
120 
120 
120 
1 20 
220 
350 
290 

-tubed 



100 

S9 00/1ot 
19 00 
19 00 
19 00 

11 00 
19 00 
14 00 

12 00 
1200 
12 00 
1200 
12 00 

900 
3100 
3100 
3100 
36 00 

900 

900 

900 

900 
1900 
3100 
26 00 

• No 



1000 P/N 
$80 001ol SW7482 

180 00 SW7483 

180 00 SW7486 

180 00 SW7491 

100 00 SW7494 

180 00 SW7495 

130 00 SW7496 

110 00 SW74100 

110 00 SW74104 

110 00 SW74106 

110 00 SW74107 

110 00 SW74121 

80 00 SW74123 

300 00 SW74145 

300 00 SW74150 

300 00 SW74151 

350 00 SW74153 

80 00 SW74156 

80 00 SW74180 

80 00 SW74181 

80 00 SW74182 

180 00 SW9601 

300 00 SW9602 



Special 
Offer 



IWmia.l 

S4 90W 
350 
220 
350 
350 
350 
350 
690 
220 
220 
220 
220 
250 
550 
690 
350 
400 
400 
450 
990 
450 
250 
490 



100 
44 00 lot 
3100 
1900 
31 00 
3100 
3100 
3100 
66 00 
19 X 
19 00 
1900 
19 00 
22 00 
5100 
66 00 
3100 
36 00 
36 00 
4100 
96 00 
4100 
22 00 
44 00 



1000 

430 00/lot 
300 00 
180 00 
300 00 
300 00 
300 00 
300 00 
650 00 
180 00 
180 00 
180 00 
180 00 
200 00 
500 00 
650 00 
300 00 
350 00 
350 00 
400 00 
950 00 
400 00 
200 00 
430 00 



250 00 

mixing or combining prices 



TV GAME CHIP SET — $7.95 

Includes AY-3-8500-1 Chip and 2.010 mhz crystal 
(2 010 crystal — $.99 ea/AY-3-8500-1 Chip — $7.50 ea.) 



TVP€ 

1N746 

1N751A 

1N752 

1N753 

1N754 

1N959 

1N965B 

1N5232 

1N5234 

1N5235 

1N5236 

1N456 

1N458 

1N485A 

1N4001 

1N4002 

1N4003 

1N4004 



ZENERS 

VOLTS W 

33 
5 1 
56 
62 
68 
82 
15 
56 
62 
68 
75 
25 
150 
180 
50PIV 
100 PtV 
200 PIV 
400 PIV 



DIODES — 

PRICt TYPE 



400m 
4O0m 
4O0m 
400m 
400m 
400m 
4O0m 
500m 
500m 
500m 
500m 

40m 
7m 

10m 
1 AMP 
1 AMP 
1 AMP 
1 AMP 



4/1 00 

4/1 00 

4/1 00 

4/1 00 

4/1 00 

8/1 00 

4/1 00 

28 

28 

28 

28 

6/1 00 

6/1 00 

6/1 00 

12/1 00 

12/1 00 

12/1 00 

12/1 00 



1N4005 
1N4006 
1N4007 
1N3600 
1N4148 
1N4154 
1N4305 
1N4734 
1N4735 
1N4736 
1N4738 
1N4742 
1N4744 
1N1183 
1N1184 
1N1185 
1N1186 
IN1 188 



RECTIFIERS 

VOLTS W 

600 PIV 1 AMP 

800 PIV 1 AMP 

1000 PIV 1 AMP 



50 
75 
35 
75 
56 
62 
68 
82 
12 
15 

50 PIV 
100 PIV 
150 PIV 
200 PIV 
400 PIV 



200m 

10m 

10m 

25m 
re 
1w 
1w 
1w 
1w 

1* 

35 AMP 
35 AMP 
35 AMP 
35 AMP 

35 AMP 



PRICE 

10/1 00 

10/1 00 

10/1 00 

6/1 00 

15/1 00 

12/1 00 

20/1 00 

28 

28 

28 

28 

28 

28 

1 60 

1 70 

1 50 

1 80 

300 



SCR AND FW BRIDGE RECTIFIERS 



C360 
C38M 
2N2328 
M0A980 1 
M0A 980-3 



15A@400V 
35A @ 200V 
1 6A @ 200V 
12A@50V 

12A@2QQV 



SCR 

SCR 

SCR 

FW BRIDGE REC 

FW BRIDGE REC 



$1 95 

1 95 

50 

1 95 

1 95 



MPSA06 


30 


MPS Mt 


5/Jt 00 


awn 


441 00 


?N??19A 


341 00 


?N7??1 


4/S1 00 


2M2P22A 


5*1 00 


?N?369 


5W 00 


?N?36M 


4/S1 00 


?N?484 


4*1 00 


?N?906A 


4/»1 00 


?N2907A 


S/Jt 00 


2N2925 


5*1 00 


?N3035 


2*1 00 


2N30S5 


t m 


MJE29U 


tl 2S 


MJC3055 


tt 00 


2N3392 


vtt oo 


2N33S6 


S/V 00 


PN3S67 


3/S1 00 


PN3i«« 


4*1 00 


PN356* 


411 00 



TRANSISTORS 



2K36M 
2N3702 
2N3704 
2N3 705 
2N3706 
2N3707 
2143711 
2143724 
2M3725 
2N3772 
2K3903 
2*13904 
2N3905 
MM 
2t»4013 
2N4014 
2)44123 
PH4249 



511 00 
541 00 
51100 
541 00 
541 00 
541 00 
541 00 
t 65 
tl 00 
12 25 
541 00 
441 00 
441 00 
441 00 
311 00 
311 00 
6 tl VI 
411 00 



PM42S0 
PN44O0 
2N4401 
2t44402 
21*4401 
2*44400 

MM 
2tt50t37 
2NS0M 



Mia 

2)45131 

2)45130 

2)45209 

2)45210 

2)4543? 

2NM49 

2)45»51 

C10881SCR 

40409 

40410 



411 00 
441 00 
44100 
44100 
441 00 
541 00 
441 00 
441 00 
441 00 
441 00 
541 00 
541 00 
541 00 
54100 
541 00 
12 00 
341 00 
54100 
241 00 
$1 75 
II 75 



CAPACITOR 



10 pi 
22 pf 

47 pf 
100 pf 
220 pi 
470 pf 

001 mi 
0022 
004 7mf 
01 mf 

1/35V 
15/35V 
22/35V 
33/35V 
47/35V 
68/35V 
1 0/35V 



50 VOLT CERAMIC 
OISC CAPACITORS 

1-9 10-49 50-100 1-9 

05 04 03 001 M F 05 

05 04 03 0047/xF 05 

05 04 03 01 M F 05 

05 04 03 022 M F 06 

05 04 03 047 M F 06 

05 04 035 1 M F 12 



CORNER 



10-49 
04 
04 
04 
05 
05 
09 



100 VOLT MYLAR FILM CAPACITORS 

12 10 07 022m» 13 11 

12 10 07 047mt 21 17 

12 10 07 1ml 27 23 

12 10 07 22m! 33 27 
+ 20% WPPEO TANTALUMS (SOLID) CAPACITORS 

28 23 17 1 5/35V 30 26 



28 
28 
28 
28 
28 
28 



23 
23 
23 
23 
23 
23 



17 
17 
17 
17 
17 
17 



2 2/25V 

3 3/25V 

4 7/25V 
6 8/25 V 

10/25V 
15/25V 



31 
31 
32 
36 
40 
63 



27 
27 
28 
31 
35 
50 



MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS 



Axial Lead 
47/50V 15 13 

1 0/50V 16 



33/50V 

4 7/25V 

10/25V 

10/50V 

22/25V 

22/50V 

47/25V 

47/50V 

100/25V 

100/50V 

220/25V 

220/50V 

470/25V 

1000/16V 

2200/16V 



14 
16 
15 
16 
.17 
24 
19 
25 
24 
35 
32 
45 
33 
55 
70 



14 

13 

14 

13 

14 

15 

20 

17 

21 

20 

30 

28 

41 

29 

50 

62 



10 
11 
10 
12 
10 
12 
12 
18 
15 
19 
18 
28 
25 
38 
27 
45 
55 



47/25V 
47/50V 
1 0/1 6V 
1 0/25V 
1 0/50V 
4 7/16V 
4 7/25V 
4 7/50V 
10/16V 
10/25V 
10/50V 
47/50V 
100/16V 
100/25V 
100 /50V 
220/1 6V 
470/25V 



Radial Lead 
15 13 



16 
15 
16 
16 
15 
.15 
16 
14 
15 
16 
24 
19 
24 
35 
23 
.31 



14 

13 

14 

14 

13 

13 

14 

12 

13 

14 

21 

15 

20 

30 

17 

28 



50-100 
035 
035 
035 
04 
04 
075 

08 
13 
17 
22 

21 
22 
22 
23 
25 
29 
40 



10 
11 
10 
11 
11 
10 
10 

11 

09 
10 
12 
19 
14 
18 
28 
16 
26. 



132 



/iS SOCKET 
JUMPERS 



Part No. 

924003 -18R 
924003 -06R 
924005 -18R 
924005 -06R 
924006 -18R 
924006 -06R 



No 



Mates with two rows ot 025" sq or 
dia posts on patterns of .100 
centers and shielded receptacles 
Probe access holes in back Choice 
of 6" or 18" length 
of Contacts Length Price 
26 18" $ 5 38 ea 

26 6" 4 78 ea 

40 18" 8 27 ea 

40 6" 7.33 ea 

50 18" 10.31 ea 

50 6" 9.15 ea 



8080A 

8212 

8214 

8216 

8224 

8228 



MICROPROCESSOR COMPONENT 



CPU $10 95 

8 Bit Input/Output 4 95 

Priority Interrupt Control 7 95 

Bi -Directional Bus Driver 4 95 

Clock Generator/Driver 5 95 

System Controller Bus Driver 5 95 



H JUMPER 
HEADERS 

No 



Part No. 

923863-R 
923873-R 
923865-R 
923875-R 
923866 -R 
J23876-R 



Solder to PC boards for instant, 
plug -in access via socket-connector 
jumpers. 025" sq. posts Choice 
of straight or right angle 

ot Posts Angle 



26 
26 
40 
40 
50 
50 



straight 
right angle 
straight 
right angle 
straight 
right angle 



Price 

41 28 ea 
1 52 ea 

1 94 ea 

2 30 ea 
2.36 ea 
2 82 ea 



ii INTRA-CONNECTOR 

Provides both straight and right angle functions Mates 
with standard 10' x 10" dual row connectors (i.e. 3m, Ainsley, 
etc ) Permits quick testing of inaccessible lines. 
Part Mo.: 922576-26 No. of contacts: 26 Prlco $6 90 ea 



i« INTRA-SWITCH 

Permits instant line-by-line switching for diagnostic or QA 
testing. Switches actuated with pencil or probe tip Mates with 
standard 10" x .10" dual-row connectors Low profile design 
Switch buttons recessed to eliminate accidental switching 
P art No.: IS 26 No. of contacts: 26 Price $13 80 ea 

- ^ CRYSTALS W~ 



CPUS 

8080A Super 8008 J'O 95 

2650 8 Bit MPU 26 50 

P8085 CPU 2995 

SRS 

2504 1024 Dynamic S 3 95 

2518 He« 32 BIT 7 00 

2519 Hex 40 BIT 4.00 
2522 Dual 132 Bit SSR 2 95 

2524 512 Dynamic 99 

2525 1024 Dynamic 3 00 
2527 Dual 256 BIT 3 95 
2529 Dual 512 BIT 4 00 

2532 Quad 80 BIT 3 95 

2533 1024 Static 5 95 
3341 Mo 6 95 
74LS670 16 « 4 Reg 3 95 

■ajTi 

AY-5 1013 30K Baud $ 5 95 

ROM'S 

2513(2140) Char Gen upper case S 9 95 

2513(3021) Char Gen lowercase 9 95 

2516 Char Gen 10 95 

MM5230 2048 BIT (512 x 4 on 256 » 81 1 95 



CDP1802 

MC6800 

MC6820 

MC6810AP1 

MC6830L8 

Z80 



1101 

2101 

2102 

2107/5280 

2111 

1MS4044-45NL 

7489 

8101 

8111 

8599 

21L02/91I02 

74200 

93421 

UP04 14(21 04) 

UPD416 

1702A 

5203 

82S23 

62S123 

74S287 

3601 



CPU 

8 Bit MPU 

Periph Interface Adapter 

128 x 8 Static RAM 

1024 x 8 Bit ROM 

CPU 



$19 95 

1995 

795 

5 95 

1500 

24 95 



RAMS 



256 > 1 

256x4 

1024 x 1 

4096 x 1 

256x4 

4K 

16x4 

256x4 

256x4 

16x4 

1024 x 1 

256 x 1 

256 x 1 

4K 

16K 



Static 

Static 

Static 

Dynamic 

Static 

Static 

Static 

Static 

Static 

Static 

Static 

Static 

Static 

Dynamic 16 Pm 

Dynamic 



12708 



PROMS 

2048 Famos 

2048 Famos 

32 x 8 Open C 

32 x 8 instate 

1024 Static 

256 x 4 Fast 



8K 



Eprom 



$ 1 49 

595 

1 75 
4 95 
695 

14 95 

2 49 
595 
695 

3 49 

2 25 
695 
295 
595 

49 95 

S 595 

14 95 

500 

500 

795 

3 95 
10 951 



The Incredible 
"Pennywhistle 703' 



[MM5262 



2K x 1 Dynamic RAM 3 lot Toe) 



2716 16K Eprom 29 95 

63011 1024 Tn State Bipolar 3 49 

6330 1 256 Open Collector Bipolar 2 95 



SPECIAL REQUESTED ITEMS 



Part m 

CY1A 

CY2A 



THESE FREQUENCIES ONLY 
Frequency Cite Style 

1 000 MH* HC33 U 

2 000 MHz HC33 U 



CY2 01 



2 010 MHz. 



HC33 U 



Trice 

$5 95 
$5 95 

T 



99 



CY3A 

CY7A 

CY12A 

CY14A 

CY19A 

CY22A 

CY30B 



4 000 MHz 

5 000 MHz 
10 000 MHz 
14 31818 MHz 
18 000 MHz 
20 000 MHz 
32 000 MHz 



HC18U 
HC18U 
HC18U 
HC18U 
HC18U 
HC18U 
HC18U 



$4 95 
$4 95 
$4 95 
S4 95 
S4 95 
$4 95 
$4 95 



CONNECTORS 

PRINTED CIRCUIT EDGE-CARD 

156 Spacing -Tin Double Read -Out 



- Fits 054 to 070 P C Cards 

PINS (Solder Eyelet) $1.95 

PINS (Solder Eyelet) $2.49 

PINS (Solder Eyelet) $2.95 

PINS (Wire Wrap) $5-95 

25 PIN-D SUBMINATURE (RS232) 

DB25P PLUG $3.25 

DB25S SOCKET $4.95 

DB51 226-1 COVER FOR 25S/25P $175 



Bifurcated Contacts 
15 30 
18/36 
22/44 
50/1 00A (.100 Spacing) 



FCM3817 
AY -3-8500-1 
AY -5 -91 00 
AY-5 9200 
AY-5-9500 
AY 5 2376 
9374 
82SHj^^ 



$5 00 
750 

17 50 

14 95 
495 

14 95 
1 95 



11C90 

4N33 

8T20 

8T97 

HD0165 

MCM6571 

MCM6574 

MCM6575 



19 95 
395 
750 
200 

7 95 
13 50 
13 50 

1350 



7205 

ICM7045 

ICM7207 

ICM7208 

ICM7209 

MK50240 

DS0026CH 

TIL308 



19 95 
24 95 

750 
22 00 

750 
1750 

375 
10 50 



9368 

LD110/111 
95H90 
MC3061P 



395 

25 00 set 

11 95 

350 



MC4016 (74416) 
MC1408L7 
MC1408L8 
74C922 



750 
895 
9 95 
995 



PARAThoNICS 

Featured on February's Front Cover of Popular Electronics 

Logic Analyzer Kit 
Model 100A 

S229 00/kit 



CLOCK CHIPS 

MM5309 $9 95 

MM5311 

MM5312 

MM5314 

MM5316 

MM5318 

MM5369 

MM5841 



4 95 
4 95 
4.95 
695 
9 95 
2 95 
9 95 
5.95 



Modal 100A 
I I I I I 



Modal 10 

• mm. 

*••• aajj 



Analyzes any type of digital system 
Checks data rates in excess of 8 
million words pei second 
Trouble shoot TTL. CMOS. DTL. RTL 
Schottky and MOS families 
Displays 16 logic states up to 8 digits wide 
See ones and zeros displayed on your 
CRT. octal or hexadecimal format 
Tests circuits under actual operating conditions 
Easy to assemble — comes with step-by -step construction 
manual which includes 80 pages on logic analyzer operation 

(Model 100A Manual - $4 95) 




Some applications are: 
- Troubleshooting microprocessor 
address, instruction, and data flow 

— Examine contents of ROMS 

— Tracing operation of control logic 

— Checking counter and shift 
register operation 

— Monitoring I/O sequences 

— Verifying proper system operations 
during testing 



4Qm 

/■ Si 



LOTS OF POTS is 



Untested %" square Spectrol Trimpots 
Single-turn Printed Circuit Potentiometers 



a> 



10-20-25-50 

100 200-250-500 ohm 

1K-2K-2 5K-5K 

10K 20K 25K-50K 

100K-200K-250K-50OK 

1Meg-2Meg 2 5Meg 5Meg 

(Values subject to substitution within each group.) 
EXTRA SAVINGS'** aii ifsmtMl i*> far mi* $7.49 



GB134 
GB135 
GB136 



3 ea of 
3 ea of 
3 ea of 



24 pes 
24 pes 
24 pes 



$2.95 

$2 95 
$2.95 



V mounting holes 



TOGGLE 
(sub-minature) 



SWITCHES 



1-9 



10+ 



JMT121 

JMT123 
JMT221 
JMT223 



SPDr 
SPDT 
DPDT 
DPOT 



on -oft on 
on-none-on 
on-otfon 
on none on 



S1 95 

1 65 

2 55 
2 15 



$1 43 

1 21 
1 87 
1 58 



PARATRONICS TRIGGER EXPANDER - Model 10 

Adds 16 additional bits Provides digital delay and qualification of input clock 
and 24 -bit trigger word. — Connects direct to Model 100 A for integrated unit) 



SfC PRE CIS 10 W 




Model 2800 
$99.95 

Comes with test 

leads operating manual 

and spare (use 



3Vi-Digit Portable DMM 

• Overload Protected 

• 3 high LEO Display 

• Battery or AC operation 

• Auto Zeroing 

• lmv. Wa. 1 ohm resolution 

• Overange reading 

• 10 meg input impendence 

• DC Accuracy 1°o typical 
Rang**: DC Voltage ■ 10UOV 
AC Voltage 1000V 

Frpq Response 50-400 HZ 
DC/AC Current 0- 100mA 
Resistance 0-10 meg ohm 
Size 6 4 » 4 4 x 2 

Accessories: 
AC Adapter BC 28 $9 00 
Rechargeable 

Batteries BP 26 20.00 
Carrying Case LC 28 7.50 



Model 10 Kit - $229.00 



Baseplate — $9 95 
Model 10 Manual — S4.95 



100 MHz 8-Digit Counter 

20 Hz 100 MHz Range . Four power souces. i e 
6" LED Display batteries. 1 10 or 220V with 

Crystal controlled timebase charger 12V with auto 
lighter adapter and external 
7 2 -10V power supply 

maxim $-134.95 



Fully Automatic 
Portable — completely 
self-contained 
Size — 1 75" x 7 38" 
x5 63" 



w IddtiUU 



* 



ACCESSORIES FOR MAX 100 

Mobile Charger Eliminator 

use power from car battery 

Charger/Eliminator 

use 110 V AC Model 100 



Model 100 - CIA S3 SB 



CM S9.S5 



CONTINENTAL SPECIALTIES 



MPC121 SPDT on-otfon 52 05 

TOGGLE MPC123 SPDT on none -on 1 75 

(Printed Circuit) MPC221 DPDT on off on 2 65 

MPC223 DPDT on-none-on 2 25 



t. 



S1 53 
1 31 
1 97 
1 68 



PUSH BUTTON 



PB123 
PB126 



SPDT 
SPDT 



maintained 
momentary 



1 95 
1 95 



1 47 
1 47 



II 



PUSH BUTTON 
Minature 



MS102 
MS103 



DPS! 
SPST 



momentary open 
momentary closed 



35 
35 



30 
30 



DIPSWITCH 
SPST 



2064 
206-7 
206-8 



8 pin dip 
14 pin dip 
16 pin dip 



i MM 

7 switch 

8 switch 



1 75 

1 95 

2 25 



1 65 

1 85 

2 15 



PHENOLIC 

EPOXY 
GLASS 



EPOXY GLASS 
COPPER CLAD 



1/16 VECTOR BOARD 

1 Hole Spacing P Pattern Price 

Part No I * 1-e 10 up 

64P44 062XXXP 4 50 6 50 1 72 1 54 

169P44 062XXXP 4 50 17 00 3 69 3 32 

64P44 062WE 4.50 6 50 2 07 1 86 

84P44 062WE 450 850 256 2 31 

169P44 062WE 450 1700 504 4 53 

I69P84 062WE 8 50 17 00 9 23 8 26 

169P44 062WEC1 4 50 17 00 6 80 6 12 



INSTRUMENT/ 
CLOCK CASE 

I Injection molded unit 
| Complete with red bezel 
, 4V»"x 4- x 1-9/16" 



PROTO BOARD 6 

$15.95 

(6 " long X 4' wide) 



Other CS Proto Boards 




4 5 x6 $ 19.95 

5.8" x 4.5" 29 95 

7 "x4.5" 39 95 

9"x6 59 95 

9.5' x8' 79 95 

9 75x6^x2*4 80.00 



PB100 

PB101 

PB102 

PB103 

PB104 

PB203 

PB203A - 9 75 x 6V 2 
i includes power supply; 



x 2*« 129 95 



LOGIC MONITOR 

for DTL. HTL. TTL or CMOS Devices 



$84.95 



PROTO CLIPS 



14 PIN 
16 PIN 
24 PIN 
40 PIN 



$4.50 
4 75 
850 

1375 



DESIGN MATES 

DM1 - Circuit Designer 

$69 95 
DM2 - Function Generator 

$74.95 
DM3 RC Bridge 

$74 95 



*■ 



QT PROTO STRIPS 



OT 59S 




QT 35S 



•OT 358 



aaaaaai 



OT 18S 



QT-12S 



QT 8S 



QT 7S 



ui type 
QT 59S 
QT 59B 
QT 47S 
QT -47B 
QT 35S 
QT 358 
QT 18S 
QT 12S 
QT-8S 
QT 7S 



• holes 

590 

bus strip 

470 

bus strip 

350 

bus strip 

180 

120 

80 

70 



price 

12 50 

250 

10 00 

2 25 
850 
200 
4 75 

3 75 
3 25 
300 



Expenmentor 300 
Expertmentor 600 



S 9 95 

$10 95 



$5 00 Minimum Order _ U.S. Funds Only 
California Residents — Add 6% Salts Tax 



$3_ 





Spec Sheets • 25* — Send 35* Stamp tor 1978 Catalog 
Dealer Information Available 

1978 
CATALOG 

NOW 
AVAILABLE 



1021 A HOWARD AVE., SAN CARLOS, CA. 94070 
PHONE ORDERS WELCOME — (415) 592-8097 

Advertised Prices Good Thru April 



J1 




$129.95 Kit Only 

The Pennywhittle 103 is capable ot recording data to and trom audio tape without 
critical speed requirements lor the recorder and rl is able to communicate directly 
with another modem and terminal tor telephone hamming and communications 
tor the deaf In addition . it is free ol critical adiustments and is built with non -precision 
readily available parts 
Data Transmission Met** Frequency Shirt Keying, tull-duplex (halt-duplex 

selectable) 

Maximum Data Rate 300 Baud 

Data Format Asynchronous Serial (return to mark level required 

between each character) 
Receive Channel Freeeenelee . . .2025 Hz tor space. 2225 Hz tor mark 
Transmit Channel Frequencies . Switch selectable Low (normal) - 1070 space. 

1270 mark. High 025 space, 2225 mark 

Receive Sensitivity -46 dbm accousticalty coupled 

Transmit Level -II dbm nominal Adiustable trom 6 dbm 

to 20 dbm 
Receive Frequency Tolerance . . .Frequency reference automatically adiusls to 

allow tor operation between 1 800 Hz and 2400 Hz 
Digital Data Interlace EIA RS 232C or 20 mA current loop (receiver is 

optoisolated and non -polar) 

Power Requirements 120 VAC. single phase 10 Watts 

Physical A" components mount on a single 5" by 9" 

printed circuit board All components included 
Requires j VOM Audio Oscillator, Frequency Counter and/or Oscilloscope to align 




3 rd Hand 

$9.95 each 

'Leaves two hands free for 
working 

Clamps on edge of bench, table 
or work bench 

Position board on angle or flat 
position for soldering or clipping 
Sturdy, aluminum construction 
for hobbyist, manufacturer or 
school rooms 



DIGITAL STOPWATCH 



• Bright 6 Digit LEO Display 

• Times to 59 minutes 59 59 seconds 

• Crystal Controlled Time Base 

• Three Stopwatches m One 

Times Single Event - Split & Taylor 

• Size 4 5 x 2 15 x 90 |4V> ounces) 

• Uses 3 Penlrte Cells 

Kit — $39.95 

Assembled — $49.95 

Heavy Duty Carry Case $5.95 



Stop Watch Chip Only (7205) $19.95 





3 Vz DIGIT DPM KIT 



.\2& 






New Bipolar Unit • Auto Polarity 

• Auto Zeroing • Low Power 

• .5" LED • Single IC Unit 

Model KB500 DPM Kit $49.00 

Model 311D-5C-5V Power Kit $17.50 




12 or 24 Hour 



JE700 CLOCK 

The J! .'00 is a low cost digital clock but 
is a very high quality unit The unit tea 
lures a simulated walnut case with di 
mensions ol 6 »2'? » 1 It utilizes a 
MAN72 high brightness readout and the 
MM5314 clock chip 



115 VAC 



KIT ONLY 



$16.95 




HEXADECIMAL 
ENCODER 19-KEY PAD 

• 1-0 

• ABCOEF 

• Shift Key 

• 2 Optional Keys 

$10.95 each 



New 63 KEY KEYBOARD $29.95 

IN STOCK 




"RffilsT 

AYS 2371 



Encoder Chip (encodes 16 Keys) 
Encoder Chip (encodes 88 Keys) 



This keyboard features 63 unen 
coded SPST keys unattached to 
any kind of P C B A very solid 
molded plastic 13 « 4 base 
suits most applications 

Srte'e. 



SUM ee 



JE803 PROBE 

The Logic Probe is a unit wnich is foi the most part 
indespensibie in double shooting logic families 
TT"l DTI RTL CMOS II derives the powei it 
needs to operate directly off ot the circuit undei 
test drawing a scant 10 mA man it uses a MAN 1 
icadout to indicate any ol the following stales by 
these symbols (Hi i dOW) o (PULSEi P The 
Piobe can detect high frequency pulses to 45 MHz 
It can t be used at MOS levels oi circuit damage 
will result 




$9.95 Per Kit 

printed circuit board 




PL 5V 1A Supply 

This is a standard TTL power supply using the well known 
LM309K legulalor IC to provide a solid 1 AMP ot current at 5 
volts We try to make things easy for you by providing 
everything you need in one package including the hardware^ 

.oronty $9.95 Per Kit 



133 



WIRE WRAP BOARDS LOADED WITH 7400 SERIES ICs 



■ 



1 



Since last summer, we have been selling 2 wire wrap boards, 
Our Stock No. 6558K with approximately 100 sockets, and 
our Stock No. 6559K with approximately 45 sockets. 
These have been successful, based on your orders and 
reorders. We now have the same boards, but with the 
sockets still containing the original SN7400 series ICs that 
were used in the computer that these boards were designed 
for. We checked the value of these ICs, against the lowest 
price ICs in several Electronics magazine, and found that 
at the lowest possible surplus prices, the values of the ICs on the 100 socket board ran to over $40.00. A sample of 
some of the chips on the board we looked at are as f ollows: 74H87, 7486, 74107, 7451, 7400, 7404, 7495, 7493, 
7492, 74193, 7489 and many others, to numerous to mention. Also on some boards, are a few linears, and phase 
locked loops. Not everyone needs every chip, but if you are working at all with TTL, this is a great opportunity to get 
an inventory of the most useful chips at a ridiculous price. We are selling the 100 socket board with about 100 chips 
for $10.00 more than the board itself, and the 45 socket chip for $5.00 more than the board itself. We will also include 
with each board, 2 edge connectors with the 100 socket board, and 1 edge connector with the 45 socket board. 
STOCK N0.6558K 75 to 100 socket board $18.75 ea. 2/35.00 

STOCK N0.6559K 45 to 50 socket board $1 1 .75 2/22.00 

IJ£££ KS'f ^ 4 « K 75 to 10 ° socket wire wra P board with ICs and edge connectors $28.75 ea. 2/55.00 

blOCK NO.6750K 45 to 50 socket wire wrap board with ICs and edge connector $16.75 ea. 2/32.00 

STOCK NO.6603K Edge connector for either board $2.00 ea 3/5.00 



VIDEO MONITORS 



For the past several months, we have been selling VIDEO 
MONITORS through these pages. We have now exhausted 
supply of complete working monitors, and have left a few lots that may have some interest to our readers. We have a 
limited number of MONITORS that are in working condition, but lack a picture tube. We will sell these monitors for 
about half of what we sold the complete monitor for. The second lot does not have picture tubes, but has all other 
parts, but no guaranteee that all parts are in working condition. Note in some cases in each of the above lots, a picture 
tube may be included, but it will have some burnt spots on the screen. No guarantee on which ones these will be. 
STOCK NO. 5585K Working monitors without picture tubes $49.95 ea. 

STOCK NO. 5586K Monitors without picture tubes, need other repairs $29.95 ea. 



NEW GENERl PURPOSE TRANSFORMERS 

Primary 115 VAC. Sec 1. 12.6 VAC ct. @ 1.0 A. Sec. 2. 33 VAC tapped @ 13.1 @ 1.0 A. Sec. 3 140 VAC @ 100 ma 
STOCK N0.6751K 4 1/16"x2 1/16"x2 5/8" Wt. 2 lbs. $2.95 ea. 2/5.00 



Primary 1 1 5 VAC. Sec. 1 . 23VAC @ 9 A. Sec. 2 1 4 VAC @ 20 A. Sec. 3 1 1 .5 VAC @ 4.8 A. Sec.4 f 1 25 VAC @ 1 5 A 
Also has a second primary winding, so that all secondaries may be obtained with a 220 input, or if 2 primaries are 
placed in series on 1 15 VAC, all secondary voltages are divided by 2. 

STOCK N0.6675N 5%x5 M x4V 2 " 16 lbs. 



$17.95 ea. 



2/34.00 



Primary 1 1 5 with tap to give seconday of either 8.6 or 9.5 VAC @ 2 A. Ideal for TTL power supply 
STOCK NO. 6726 N_ _3 1_/8"x2 7/jT 2W' tVt^telbs. $3.95 ea. 2/7.00 

Primary 115 VAC. Sec. 1.30 VAC. @ 2 A. Sec. 2. 16.5VAC"@TT5 ATsec".3,T6 VAC @"3.5~A."Sec.~479T VAC @35A 
STOCK N0.6677N 4V 2 "x4V4x4" 10 lbs. $10.95 ea. 2/20.00 



V IDEOCUBE THE COMPUTER / TV INTERFACE VIDEOCUBE is a self contained oscillator 

and modulator, which allows easy interface 
with any device having a video output, and a standard TV set. When properly used, the output of your video camera, 
video game or video output of your computer is displayed on channel 3. Easy switching from TV to monitor. The 

1>!^? C u*lfZ aS com P , f t x e, y described in August issue of RADIO-ELECTRONICS. We supply a reprint of this 
article. Has FCC approval for radiation. 

STOCK NO. 5500K Complete kit of parts with data. $13.95 2/26.00 



ROTRON WHISPER FANS 



KEEP YOUR EQUIPMENT COOL, with ROTRON WHISPER FANS. 1 1 5 VAC. 7 Watts. 
These fans have been removed from equipment, and are fully guaranteed. 4V2 ,, x4 1 /2 ,, x1 1 /fe M 
STOCK NO.5520K $6.95 ea. 2/1 2.00 



DELTA 

P.O. BOX 

Amesbury, 



MAIL ORDER 



ELECTRONICS 

2, 7 Oakland St. 
Mass. 01913 



0v 2 r T ; h 1 e M C T O r t iii salesroom ^ BOSTON MASS. 

AILANIA 0A IDELTA ELECTRONICS 

DELTA ELECTRONIC HOBBIESl WAREHOUSE OUTLET 
5151 Buford Hwy. 1590 Commonwealth Ave. 

Doraville, Atlanta, Ga. | Boston, Mass. di3 



134 












Complete 
Connectors 


NYLON CONNECTORS Mn 


by Molex 
Price 


Per PVg. 


Type No. 


Clou 


Description 


Ea. Pkg 


5 


1625-1 PRT 


Min.(.062') 


1 Circuit 


$1.75 


3 


I625-2PRT 


II 


2 Circuit 


1.90 


3 


I625-3PRT 


H 


3 Circuit 


2.10 


2 


I625-4PRT 


■ 


4 Circuit 


2.10 


2 


I625-5PRT 


II 


5 Circuit 


2.20 


2 


I625-6PRT 


II 


6 Circuit 


2.35 


1 


I649-8PRT 


M 


8 Circuit 


1.55 


1 


I625-9PRT 


ii 


9 Circuit 


1.75 


1 


I625-I2PRT 


II 


12 Circuit 


1.90 


1 


I625-I5PRT 


• 1 


15 Circuit 


2.30 


1 


I625-24PRT 


II 


24 Circuit 


3.25 


1 


I772-36PRT 


M 


36 Circuit 


4.55 


5 


I6I9PRT 


Srd.(.093"t 


1 Circuit 


1.75 


3 


1545 PRT 


II 


2 Circuit 


1.90 


3 


1396 PRT 


» 


3 Circuit 


2.10 


2 


1490 PRT 


■ 


4 Circuit 


2.10 


2 


1653 PRT 


II 


5 Circuit 


2.20 


2 


1261 PRT 


■ 1 


6 Circuit 


2.35 


1 


1292 PRT 


•• 


9 Circuit 


1.80 


1 


1360 PRT 


■ 1 


12 Circuit 


1.90 


1 


1375 PRT 


■ I 


15 Circuit 


2.45 



Prototype hand tool* n t . . » economy local lot prototype or 

limited production runs 

HT1919tor 093 pm dia terminals S8"'' 



HT 19?1 tor 062" pm dia terminals 




S8 9' 



Econo-Extractor .moves terminal from nylon connector housmq 
smoothness and ease 

HT 2054 lor extracting 093 pm dia terminals S2 2b each 

HT 2023 lor extracting 062 pin dia terminals $2 2' 



-J-4 



Deluxe ejector tool*. pi ng loaded 'or simple ellicieni removal ot terminal 

trom nylon connector housing extracts either male <x lemale terminals ot same 

pin diameter 

HT 2038 tor extracting 093 pm dia terminals S6 '0 each 

HT 1010 ?B? Replacement up lor HT 2038 *2 50 each 

HT 2285 tor extracting 062 pm dia terminals 

HT 1672 3 replacement tip lor HT 2285 



V2 ■*" a* h. 




INTEGRATED CIRCUITS 

555 Timer 8 pin mini-DIP 

741 Compensated OP- Amp 8 pin DIP 

LM 1889N RF Video Modulator 

CA3130 Bipolar/Mos FET Op Amp 

CA3140 MOS-FET Op Amp, Bipolar out 

LM3909 Lo Voltage Led Pulser 

LM391 1 Temp Control CHIP 

Signetics 2504TA 1024 bit S.R. memory (I404A), 

MCM 657 1P Character Generator 

MCM6571AP Character Generator 



1i 



.49 

.37 

7.45 

1.19 

.99 

1.50 

1.50 

1. 75 

.95 

.95 



MCM6575P Character generator $14.88 

50240 Top octave generator $14.95 

l LM399H Temp Stabilized Zener 5.95 

(AF100-1CJ Active Filter, State Variable 7.50 

LM2907N Tachometer F/V Converter 2.65 

I LM1812N Ultra sonic Transceiver 9. 1 5 

i LM1 81 5 Adaptive Sense Amp for Tachometer 5.73 

[TL170 TO-92 Hall effect switch w/spec sheets 1 .25 

MCA44Q9P Telephone Rotary Pulser 10.98 

MC14419P Touch Pad Converter for 14409 4.25 

MC14411P Baud Rate Generator 1198 

MC14412VP CMOS Modem Chip 16.95 

MM57109N Number Cruncher Micro 18.95 

74C91 5 7 Segment to BCD Converter 2.99 

74C922 16 Key Keyboard Encoder 6.35 

74C923 20 key Keyboard Encoder 6.45 

74C925 4 Decade Counter w/latches 12.00 

74C926 4 Decade Counter w/carry 12.00 

74C935-1 3% Digit DVM CMOS Chip 16.98 

9601 Retriggerable One shot 50 

MC40I5P Hi Speed quad "D" low power TTL .....$1.00 



ADJUSTABLE NEGATIVE REGULATOR 
LM337 is the compliment to the popular LM3I7 positive 
adjustable regulator. Capable of 1 .5Amp from - 1 .2V 
to - 37V. 

LM337K (TO-3 Metal) $5.99 

LM337T (TO-220 Plastic) $4.65 

Specs and applications 60$ 



HEAT SINKS 




6030PB 




6045B 





. 



6I06PB 



6I07PB 






I S 



60l3B r 



VI 






9 




Economical 1 piece heat sinks for plastic power parts in TO-220 
and Motorola cases 77, 90, 199, and TO-126. All are black 
anodized aluminum. "B" series is anodized after forming. "PB" 
series is anodized prior to forming. 

THM 6030PB Vertical 25<, 5/$l .00, 10/$1 .90 

Slip Over 30C, V$l .00, 10/$2.00 

Extra Disipation Horiz.35$, 3/$l .00, 10/$3.00 



THM 
THM 
THM 
THM 
THM 
THM 
THM 



6045B 

6070B 

6071 B 

6I06PB 

6I07PB 

60I3B 

6024-U 



Top Hat for 6070 
Flat With Fingers 
Smaller Size Flat 
TO-3 Diamond 
Unfinished TO-92 



35<, 3/$1.00, 10/$3.00 
30$, 4/$1.00, IO/$2.00 
25c, 5/$1.00, I0/$1.90 
69c, 4/$2.50, 10/$5.00 
10/$1.00, IOO/$5.00 



OPTO COUPLED TRIAC 

MOC-3010 provides 1 15 vac full wave switching and 
isolation. Used alone can switch up 7.5 watts from low 
power inputs such as TTL logic. Drive larger triacs and 
control the world. 

MOC-30I0P $2 ' 65 

Specs/Apps 40c 

HEX DARLINGTON ARRAY 

MCI4I3P is a 16 pin DIP package with (6) 50V 500mA 

Darlington pairs. 

MCI4I3P SI .59 

Specs/Apps 3°$ 

S-100 BUS CONNECTORS (IMSAI TYPE) 
Gold, Solder tail for Mother boards $4.50, 4/$l 7. 00 
Tin-Nickel, (NASGLO) Solder tail $3.75,4/$l4.00 

Gold, wire-wrap $4.50,4/$l7.00 

Tin-Nickel, (NASGLO) wire-wrap $3.75,4/$l4.00 

I.C. SOCKETS 



Lo Profile Tin Solder Tail Dip Sockets 



8 pin 
14 pin 
16 pin 



10/S1.50 
10/S1.70 
10/$ 1.90 



100/S14.00 
100/S16.00 
100/$ 18.00 



1000/$1 20.00 
1000/$1 40.00 
1000/$ 160.00 



VOLTAGE REGULATORS 



7805^06 08^12 1 5-24 TO220 95« 

7905 06 08 1 2 1 5^24 TO 220 95« 

78L05A 12 15 4% 100 mA TO-92 Plastic 
78H05KC 5V 5A TO-3 
78H12KC 12V 5ATO 3 
78H15KC 15V 5ATO-3 
Lm31 7K 1 5A Adjustable TO 3 
Lm3 1 7T 1 . 5A Adjustable TO 220 
Lm31 7MP 5A Adjustable TO-202 
TL430C Adjustable Zener Think About It 
TL497C Switching Reg. & Inductor 
RCA CA 3085 100 mA Adjustable 



5/$4.50 

5/$4.50 

50« 

9.15 

9.15 

9.15 

4.99 

3.99 

13.95 

1.50 

9.50 

.60 



Mi nature Reed relays 

D.P.D.T. I2V DC I000 Ohm coil. Only 3/8"xi"x7/8" 
molded case. 5/8" long flexible wire leads. Inventory 
reduction at large manufacturer brings you this super buy| 
RRY-221 2G $1 .95 

SPST N.O. 5VDC 140 Ohm coil. Measures a tiny I" 
long 3/8" diameter. Has flexible .solid wire leads. 
RRY-1 105G °0C 



DIODES AND BRIDGES 

IN4003 200V lamp 12/$1.00 

IN4004 400 V 1 amp 10/S1.00 
IN4148 Hi Speed Signal 15/$1.00 100/$5.00 

D-600 115 V, 100 mA Hi Speed Signal 20/S1.00 

D2131 200 V, 25A Stud 85< 

D2 1 35 400 V , 25A Stud 1 00 

D2 138 600 V, 25A Stud 155 

D3289R 200 V, 160A Stud Anode 5.85 

D 3909 4 50 V, 45A Fast Recovery 2.00 

IN4732A-47A 1 W 5% Zeners 4/$1 .00 

1 3 Assorted Brand New Zener Diodes 1 00 

50V 3 amp Epoxy Bridge 7 9< 

200V 30 amp Bridge 2.00, | 

600V 4 amp Epoxy Bridge 1 49 

600V 3 am D Stud Bridae 89 

SI-2 200V, 1.5A Gold Leads 15/$1.00 

D1A0030 30V DIAC 10/$1.0( 
MISCELLANEOUS 

RG 1 74 Miniature 50 « coax 5074.25 

WSU 30 Wire Wrap/unwrap tool 5.95 

WSU-30M Modified Wrap/unwrap tool 6.95 

BW-630 Battery Operated Wrap Tool 34.95 

—Free Wire with any Wrap Tool - 
Miniature Square 05/ 100V Monolithic Cap 

2N4036 90V, IA PNP Silicon TO-5 

2N6I0I 80V, I0A NON HI GAIN TO-220 

SE7005 250V, *A NPN Silicon TO-5 W/Flange 

6.3 VCT, 1.2A Transformer F41X 

12V, 1A Transformer with 6' Power Cord 



Fairchild Linear Data Book. Huge volume has 17 chap- 
ters of data, applications and definitions. Probably 
the biggest volume of its type today $4.50ppd 

Fairchild Bipolar Memory Data Book. ROMS, PROMS 
and RAMS are covered in this work with full engineer- 
ing data. Price includes shipping I $3.75 

Raytheon Linear Data Book. Covers many of the fa- 
miliar as weel as those for which Raytheon is the 
inovator. Contains valuable applications data as well, 
as complete specifications $2.95ppd 

Raytheon Micro Computer Components Book. Covers 
Raytheons' offerings in the field from the micro-puter 
to memories and adapters $2.95ppd 



w 



tPi tek. inc. 

7808 North 27th Avenue 
Phoenix. Arizona 85021 
(602) 995-9352 



T1 



Pl.ise give street address tor UPS shipping when possible. 

C.O.O. NO parcel post C.O.D. 

UPS C.O.O. Add 85« to order. 
Any correspondence not connected with your order, 
please use separate sheet and Include SASE for reply. 

Orders less than $10 (*19 foreign) please add tl 

handling. 

Prion are subject to change without notice. 

Any refunds will be by check, not credit vouchers. 

Terms. Chech, money order, credit card. Net 30 days to 
rated firms, schools and government agencies. 



If we should be temporarily out of stock on an Item. It 
win be placed on back order, if we cannot ship In 30 
days, you win be notified of the eHpected shipping date 
and furnished with a postage paid card with which to 
cancel your order If desired. 

We pay surface shipping only In USA, Canada and 

Mexico. 

For premium shipping (first class, special handling, etc.) 

add extra. Excell will be refunded. 

Foreign orders (except Canada and Mexico) estimate and 

add shipping. Excess will be refunded. 



Charge card telephone orders ($20 mm.) will be 
accepted 9-6:30 P.M. except weekend!. 
Telephone 995 9352. No collect calls please. 



1N914 

1 N4005 

1 N4007 

1N4148 

1N753A 

1N758A 

1N759A 

1N4733 

1N5243 

1N5244B 

1N5245B 



DIODES/ZENERS 



100v 

600v 

1000v 

75v 

6.2v 
10v 
12v 

5.1v 
13v 
14v 
15v 



CMOS 



4000 
4001 
4002 
4004 
4006 
4007 
4008 
4009 
4010 
4011 
4012 
4013 
4014 
4015 
4016 
4017 
4018 
4019 
4020 
4021 
4022 
4023 
4024 
4025 
4026 
4027 
4028 
4030 
4033 
4034 
4035 
4040 
4041 
4042 
4043 
4044 
4046 
4049 
4050 
4066 
4069 
4071 
4081 
4082 
MC 14409 
MC 14419 



.15 
.15 
.20 
3.95 
.95 
.35 
.95 
.45 
.45 
.20 
.20 
.40 
.95 
.90 
.35 
1.10 
1.10 
.50 
.85 
1.00 
.85 
.25 
.75 
.30 
1.95 
.50 
.95 
.35 
1.50 
2.45 
1.25 
1.35 
.69 
.95 
.95 
.95 
1.75 
.45 
.45 
.95 
.40 
.35 
.70 
.45 
14.50 
4.85 



10mA 
1A 
1A 

10mA 

z 
z 
z 
z 
z 
z 
z 



7400 

7401 

7402 

7403 

7404 

7405 

7406 

7407 

7408 

7409 

7410 

7411 

7412 

7413 

7414 

7416 

7417 

7420 

7426 

7427 

7430 

7432 

7437 

7438 

7440 

7441 

7442 

7443 

7444 

7445 

7446 

7447 

7448 

7450 

7451 

7453 

7454 

7460 

7470 

7472 



9000 SERIES 

9301 .85 95H031.10 
9309 .35 9601 .45 
9322 .75 9602 .45 



MICRO'S, RAMS, 

CPU'S, ETC. 

74S188 3.00 

1702 A 4.50 

MM5314 3.00 

MM5316 3.50 

2102-1 1.45 

2102L-1 1.75 

TR1602B 4.50 
TMS4044-45NL 14.50 

8080AD 12.00 

8T13 1.50 

8T23 1.50 

8T24 2.00 

8T97 1 .00 

2107B-4, A 4.00 

2708 11.50 



.05 
.08 
.15 
.05 
.25 
.25 
.25 
.25 
.25 
.25 
.25 



8-p 
14-p 
16-p 
18-p 
22-p 
24-p 
28-p 
40-p 



SOCKETS/BRIDGES 



n 
n 
n 
n 
n 
n 
n 
n 



pcb 
pcb 
pcb 
pcb 
pcb 
pcb 
pcb 
pcb 



Molex pins .01 
2 Amp Bridge 
25 Amp Bridge 



.25 ww .45 

.25 ww .40 

.25 ww .40 

.25 ww .75 

.45 ww 1.25 

.35 ww 1.10 

.35 ww 1.45 

.50 ww 1.25 

To-3 Sockets .45 

100-prv 1.20 

200-prv 1 .95 



.15 


7473 


.15 


7474 


.20 


7475 


.20 


7476 


.15 


7480 


.25 


7481 


.35 


7483 


.55 


7485 


.25 


7486 


.15 


7489 


.10 


7490 


.25 


7491 


.30 


7492 


.35 


7493 


1.10 


7494 


.25 


7495 


.40 


7496 


.15 


74100 


.30 


74107 


.45 


74121 


.15 


74122 


.30 


74123 


.30 


74125 


.35 


74126 


.25 


74132 


1.15 


74141 


.45 


74150 


.65 


74151 


.45 


74153 


.65 


74154 


.95 


74156 


.95 


74157 


.65 


74161 


.25 


74163 


.25 


74164 


.20 


74165 


.25 


74166 


.40 


74175 


.45 




.40 





MCT2 .95 

8038 3.95 

LM201 .75 

LM301 .45 

LM308 (Mini) .95 
LM309H .65 

LM309K (34ok-5>85 
LM310 1.15 

LM311D(Mini) .75 
LM318(Mini) .95 
LM320K5(7905)1.65 
LM320K12 1.65 



.25 
.30 
.35 
.40 
.55 
.75 
.95 
.75 
.25 

1.35 
.55 
.95 
.95 
.35 
.75 
.60 
.80 

1.15 
.35 
.35 
.55 
.55 
.45 
.35 

1.35 
.90 
.85 
.65 
.75 
.95 
.95 
.65 
.85 
.85 
.60 

1.50 

1.35 
.80 



- T 
74176 
74180 
74181 
74182 
74190 
74191 
74192 
74193 
74194 
74195 
74196 
74197 
74198 
74221 
74367 

751 08A 
75110 
75491 
75492 

74H00 

74H01 

74H04 

74H05 

74H08 

74H10 

74H11 

74H15 

74H20 

74H21 

74H22 

74H30 

74H40 

74H50 

74H51 

74H52 

74 H 53 J 

74H55 



L 
1.25 

.75 
2.25 

.95 
1.75 
1.05 

.75 

.85 
1.25 

.95 
1.25 
1.25 
2.35 
1.00 

.85 

.35 
.35 
.50 
.50 

.15 
.25 
.20 
.20 
.35 
.35 
.35 
.45 
.30 
.25 
.40 
.20 
.25 
.25 
.25 
.15 
.25 
.20 



TRANSISTORS, LEDS, etc. 

2N2222A NPN (2N2222 Plastic .10) .15 

2N2907A PNP 15 

2N3906 PNP (Plastic) 10 

2N3904 NPN (Plastic) 10 

2N3054 NPN 35 

2N3055 NPN 1 5A 60v .50 

T1P125 PNP Darlington .35 

LED Green, Red, Clear, Yellow .15 

D.L.747 7 seg 5/8" High com-anode 1.95 

XAN72 7 seg com-anode (Red) 1.25 

MAN71 7 seg com-anode (Red) 1.25 

MAN3610 7 seg com-anode (Orange) 1.25 

MAN82A 7 seg com-anode (Yellow) 1.25 

MAN74A 7 seg corn-cat hode (Red) 1.50 

FND359 7 seg corn-cathode (Red) 1.25 



74H72 
74H101 
74H103 
74H106 

74 LOO 

74L02 

74L03 

74L04 

74L10 

74L20 

74L30 

74L47 

74L51 

74L55 

74L72 

74L73 

74L74 

74L75 

74L93 

74L123 

74S00 

74S02 

74S03 

74S04 

74S05 

74S08 

74S10 

74S11 

74S20 

74S40 

74S50 

74S51 

74S64 

74S74 

74S112 

74S114 



.45 
.75 
.75 
.95 

.25 
.25 
.30 
.30 
.30 
.35 
.45 
1.95 
.45 
.65 
.45 
.40 
.45 
.55 
.55 
.85 

.35 
.35 
.30 
.30 
.35 
.35 
.35 
.35 
.35 
.20 
.20 
.25 
.20 
.35 
.60 
.65 



74S133 
74S140 
74S151 
74S1 53 
74S157 
74S158 
74S194 



.40 
.55 
.30 
.35 
.75 
.30 
1.05 



74S257(8123) 1.05 



74LS00 

74LS01 

74LS02 

74LS04 

74LS05 

74LS08 

74LS09 

74LS10 

74LS11 

74LS20 

74LS21 

74LS22 

74LS32 

74LS37 

74LS40 

74LS42 

74LS51 

74LS74 

74LS86 

74LS90 

74LS93 

74LS107 

74LS123 

74LS151 

74LS153 

74LS157 

74LS164 

74LS367 

74LS368 

74C04 

74C151 



.25 
.35 
.35 
.30 
.45 
.25 
.35 
.35 
.35 
.25 
.25 
.25 
.40 
.35 
.45 

1.10 
.50 
.65 
.65 
.95 
.95 
.85 

1.00 
.95 

1.20 
.85 

1.90 
.75 
.75 
.25 

2.25 



LINEARS, REGULATORS, etc. 

LM320T5 1.65 

LM320T12 1.65 

LM320T15 1.65 

LM324N .95 

LM339 .95 

7805 (340T5) .95 

LM340T12 1.00 

LM340T15 1.00 

LM340T18 1.00 

LM340T24 .95 

LM340K12 1.65 



INTEGRATED CIRCUITS UNLIMITED 



LM340K15 


1.25 


LM723 


.50 


LM340K18 


1.25 


LM725N 


2.50 


LM340K24 


.95 


LM739 


1.50 


78L05 


.75 


LM741(8-14).25 


78L12 


.75 


LM747 


1.10 


78L15 


.75 


LM 1 307 


1.25 


78M05 


.75 


LM1458 


.95 


LM373 


2.95 


LM3900 


.50 


LM380(8-14pin).95 


LM 75451 


.65 


LM709(8,14pin).25 


NE555 


.50 


LM711 


.45 


NE556 
NE565 


.95 






.95 


1 liiiTr 


n 


NE566 


1.75 


LIM t 


n ,0 


NE567 


1.35 



7889 Clairemont Mesa Boulevard, San Diego, California 92111 

(714) 278-4394 (Calif. Res.) 
All orders shipped prepaid No minimum 

Open accounts invited COD orders accepted 

Discounts available at OEM Quantities California Residents add 6% Sales Tax 
All IC's Prime/Guaranteed. All orders shipped same day received. 

24 Hour Toll Free Phone 1-800-854-2211 American Express / Bank American! / Visa / MasterCharge 



SPECIAL 

DISCOUNTS 

Total Order Deduct 

$35 - $99 5% 

$100 $300 10% 

$301 $1000 15% 

$1000 -Up 20% 




S.D. COMPUTER PRODUCTS 



AN EMPIRE IND CO. 



P.O. BOX 28810K 



DALLAS, TEXAS 75228 



64K FOR. $995.00 

At last! The popular Expandoram is 
available in a 16k multiple version. 
Similar to our 32k Expandoram, the 
new Super Expandoram is offered in 
16k, 32k; 48k and 64k. Low power 
devices mean the very lowest power 
consumption. Allow 3-4 weeks for 
delivery. 

16K — $281.00 48K — $757.00 

32K — $519.00 64K — $995.00 



32K FOR $475 EXPANDORAM KIT 24K F0R *367.00 




MEMORY CAPACITY 
MEMORY ADDRESSING 
MEMORY WRITE 
PROTECTION 
8K, 16K. 24K, 32K using Mos- 
tek MK4115 with 8K bound- 
aries and protection Utilizes 
DIP switches PC board comes 
with sockets for 32K operation 
Orders now beino, accepted. 
Allow 6 to 8 weeks Tor delivery 



Buy an S100 compatible 8K Ram Board and upgrade the same board to a maximum of 
32K in steps of 8K at your option by merely purchasing more ram chips from S.D 
Sales' At a guaranteed price — Look at the features we have built into the board. 



16K FOR $259.00 



INTERFACE CAPABILITY 
Control, data and address in- 
puts utilizes low power 
Schottky devices. 
POWER REQUIREMENTS 
+ 8VDC 400MA DC 
♦ 18VDC 400MA DC 
-18VDC30MADC 
on board regulation is provid- 
ed On board (invisible) refresh 
is provided with no wait states 
or cycle stealing required 
MEMORY ACCESS TIME 
IS 375ns. 
Memory Cycle Time is 500ns 



8K FOR $151.00 



Z-80 CPU BOARD KIT — $139 

CHECK THE ADVANCED FEATURES OF OUR Z-80 
CPU BOARD Expanded set of 158 instructions. 8080A 
software capability, operation from a single 5VDC power 
supply, always stops on an M1 state, true sync generated 
on card (a real plus feature'), dynamic refresh and NMI 
available, either 2MHZ or 4MHZ operation, quality double 
sided plated through PC board, parts plus sockets priced 
for all IC's 'Add $10 extra for Z— 80A chip which allows 
4MHZ operation Z— 80 chip w»th Manual — ?9 95 




"ll "*1 



6 DIGIT ALARM CLOCK KIT 

Features: Litronix dual 1/2" displays. Mostek 
50250 super clock chip, single I.C. segment 
driver, SCR digit drivers. Kit includes all ne- 
cessary parts (except case). Xfmr optional. 
Eliminate the hassle. CIO OR 

AC XFMR — $1.50 Cat* $3.50 ^1^.»5> 



S.D. SALES NEW 
EXPANDABLE EPROM BOARD 

16K or 32K EPROM $49.95 w/out EPROM 
Allows you to use either 2708's for 16K of 
Eprom or 271 6's for 32K of Eprom. 
KIT FEATURES: 

1. All address lines & data lines buffered. 

2. Quality plated through P.C. Board, in- 
cluding solder mask and silk screen. 

3. Selectable wait states. 

4. On board regulation provided. 

5. All sockets provided w/ board. 

WE CAN SUPPLY 450ns 2708s AT $11.95 
WHEN PURCHASED WITH BOARD. 



4K LOW POWER RAM KIT 



Fully Buffered — on board regulated — 
reduced power consumption utilizing 
low power 21L02 — 1 500ns RAMS — 
Sockets provided for all IC S Quality 
plated through PC board 'AddSiO for 
250ns PAM operation 




The Whole Works - $79.95 



8K LOW POWER RAM — $159.95 



Bowmar 4 Digit LED Readout Array 
Full 1 /2" Litronix Jumbo Dual 
Digit LED Displays 

4 JUMBO 50" DIGITS ON ONE STICK! 

WITH COLONS & AM/PM INDICATOR 

.$3.95, 



DL722-C.C 

DL721 8C.A. 

99c 



RAMS 



DL728-CC 

DL727-C.A. 

$1 29 



NEW FROM S.D. 

"VERSAFLOPPY"™ -KIT 

THE VERSATILE FLOPPY DISK CONTROLLER 

ONLY $149.00 

Features: IBM 3740 Soft Sectored Compatible. S 100 BNS Com- 
patible for Z-80 or 8080. Control* up to 4 Drives (single or 
double sided). Directly controls the following drives: 

1. Shugart SA40O/450 Mini Floppy. 

2. Shugart SA80C/850 Standard Floppy. 

3. F-ERSCI 70 and 277. 

4. MFE 700/750. 

5. CDC 9404/9406. 

34 Pin Connector for Mini Floppy. 50 Pin Connector for Standard 
Floppy. Operates with modified CP/M operating system and 
C Basic Compiler. 

The new "Versafloppy" from S.D. Computer Products provides 
complete control for many of the available Floppy Disk Drives. 
Both Mini and Full Size. At the heart of "Versafloppy" is the 
powerful Western Digital FD1771B-1 Single Density Controller 
Chip. This allows a great flexibility via Control Software. Listings 
for Control Software are ncluded in the price. 

FD 1771 B-l CHIP ALONE $39.95 . 



Fully assembled and tested. 
Not a kit. Imsai — Altair — 
S-100 Buss compatible, uses 
low power static 21L02-500ns 
fully buffered on board regulat- 
ed, quality plated through PC 
board, including solder mask. 8 
pos djp. switches for address 
select. 




250 ns Operation 
$189.95 



Low Cost Cassette 
Interface Kit 



Features: Play and reeerd K.C. Standard 2400/1200 Hi 
tapes. 300 Baud. TTL I/O CeweatiMe. Phase Lack Leaf. 
Beth 22 Fie Connecter and I Fin Meies Connecter 
Cesses partially assemMod. Oscillator and phase leek 
loop pre tuned lo K.C Standard. Selector switch sends 
cassette data er ausiliary input data te ns 
LCD indicates 1st* 1 weal. 



.frrjgt 

L-UlJuliilllllllilllll]: 



$19.95 



Jumbo LED Car Clock Kit 



FEATURES: 

A Bowmar Jumbo 5 inch LED array. 

B MOSTEK — 50250 — Super clock chip 

C On board precision crystal time base. 

D. 12 or 24 hour Real Time format. 

E. Perfect for cars, boats, vans, etc 

F. PC board and all parts (less case) inc. 
Alarm option — $1.50 

AC XFMR - $1 50 




$16.95 



21102 SOONS 
21L02 250NS 
2114 - 4K 
1101A - 256 
11 03 - IK 
MK 4115 8K 
74S 200 256 



8<11 50 

8' 15 95 

14 95 

8 S4 00 

J5 

1£ 45 

395 



* * * *SUPER FLOPPY SPECIAL* * * * 

S. D. SALES.' VERSAFLOPPY S-100 CONTROLLER BOARD PLUS 
SHUGART SA 400 FLOPPY DISK DRIVE INCLUDING CABLE FOR ONLY 

$479.00 



CPU's 



Z — 80 includes manual 
Z — 80A includes manual 
8080ACPU8BIT 
8008 CPU 8 BIT 



29 95 

34 95 

11 95 

6 95 



MICRO-DIP $195 

New — Series 2300 
The World's Smallest 
Coded BCD Dual-ln-Line 
Switch! PC Mount 
2300 02G BCD 1-2-4-6 
2300 12G BCD 1-2-4-8 
Compliment 



■*■ 



• • JOY STICKS* • 

FOUR100K-OHMS 

POTS f 

Ideal for 
electronic 
games $3.95 








PROMS 



1702A - IK - 1.5us 3.95 or 10/35. 

2708 - 8K - 450ns 1495 

5204 - 4K 7.95 

82S129 — IK 2.50 

2708U 8K signetics 650ns 9. 95 



COUNTER CHIPS 



MK50397 6 Digit elapsed timer 8 95 

MK50250 Alarm clock 4.99 

MK50380 Alarm chip 2.95 

MK50395 6 digit up/dn. count. 12.95 

MK5002 4 digit counter 8 95 

MK5021 Cal. chip sq root 2.50 



* * 

Thermistors 1.5K ohm . ...5/S1.00 

Tantalum Caps 1 mfd. 20VOC 

P.C. Leads 15/S1.00 

Flat Pack IC Assort 20/$1.00 

Electrical Coil 

13T Type C - 10T Type C 12/$ 1.00 

2 Transistor Audio 8/$1.00 

Trimmer Pots 

10K, 20K. 25K, Mini 10/$1.00 

Disc Caps For Bypass 
.01 mfg - 100 WUDC 

PC Leads 40/$1.00 

New Cambion Jacks 
Part #450-4352 
Gold Plated 50/$1.00 



Z-80 

Programming Manual 

IN DEPTH DETAIL OF 

THE Z-80 CPU 

MICRO-COMPUTER 

S. D. SALES SPECIAL 

$9.95 



Silicon Rectifier Special 1N4007. W 

1 amp 1000 PN 10/$1.00 

Photocell Assortment . . . . 12/S1.00 
Plastic Readout filters 

Amber 6/$1.00 

Disc Cap Assortment 60/$1.00 

P.C. Lead Diodes 

1N4148 IN 914 100/$2.00 

1N4002-1A-100 PN 40/$ 1.00 

MICA Trimmer 

PC402 Miniature 

1.5-20 P.C. P.C. Mount. 4/$1.00 
Resistor Special 22 ohm 

Carbon Comp 25/$1.00 

Resistor Assortment 1/4 W 5% & 

10% PC leads 200/$1.50 



MICROPROCESSOR 
CHIPS 



8212 - 1/0 port 350 

8214 — P.I.C 12.95 

8216 — Non Invert Bus 4.95 

8224 — Clock Gen 4.95 

8226 — Invert Bus 3.95 

PI0 for Z— 80 14.95 

CTC for Z— 80 14 95 

8228 Sys. Controller 8.20 

8251 Prog. comm. interf act 10.95 
8255 prog. prep, interface 13.50 

8820 Dual Line Recr 1.75 

8830 Dual Line Dr 1.75 

2513 Char. Gen 7.50 

8838 Quad Bus. Recvr 2.00 

74LS138N — 1/8 decoder 99 

8T97 Hex Tri State Buffer . . 1.25 

1488/1489 RS232 150 

TR 1602B Uart 395 

TR 1863 Uart 8.50 

FD 1771B-1 39.95 



CMOS 



CHOOSE $1. FREE MERCHANDISE FROM ASTERISK ITEMS ON EACH $15 ORDER 



4001 


19 


4029 


99 


4002 


19 


4042 


69 


4011 


19 


4047 


150 


4013 


32 


4049 


35 


4016 


32 


4069 


23 


4017 


95 


4071 


19 


4020 


97 


4076 


97 


4022 


97 


14518 


1.10 


4024 


75 


14528 


85 


4027 


39 


14529 


85 



CALL IN YOUR BANKAMERICARD 
(VISA) OR MASTER CHARGE OR- 
DER IN ON OUR CONTINENTAL 
TOLL FREE WATTS LINE: 



Texas Residents Call Collect: 

214/271—0022 

J— 800 — 52T — 3460 DEALER inquiries invitedi 







NO COD's. TEXAS RESIDENTS ADD 
5% SALES TAX. ADD 5% OF ORDER 
FOR POSTAGE & HANDLING . OR 
DERS UNDER $10 ADD 75c HAND 
LING. FOREIGN ORDERS - U. S. 
FUNDS ONLY! 



•• • • • 



• • • • z 
A • • • 

••..v.- r 



WfffFffFffffFffffffffffffffffffffffffffffffffffffffffffff 




• • 



• • 






• • 



• • • • • 



•••••• 

•••••• 

•••••• 

•••••• 

••••• 

•••••• 

••• 
••• 



••• 
••••• 



••• 

••• 



•••••• 

•••••• 

•••••• 



•••••• 

•••••• 



••• 
••• 



••• 
••• 



•••••• 



••• 



•••• 



•••••• 



►•• 
►••• 
•••••• 

•••••• 

• ••.. 

•••••• 

•••••• 

•••••• 

••••• 

•••••• 

•••••• 

►••• 

:•••.. 
••••• 

•••••• 

•••••• 

•••••• 

•••••• 

•••••> 

•••••• 

•••••• 

•••••• 

•••••• 

••••. 

•••••• 

•••.. 
•••••• 

•••••• 

•••••• 

•••••• 

•••••• 

•••••• 



»f Sf f ff fffffffftffffffffffs 



%0 



\ 



KIT FEATURES: 



16K E-PROM CARD ^ 

IMAGINE HAYING 16K OF SOFTWARE ON LINE AT ALL TIME! <?//?<?/ , 
S-100 llmsai/Altair) Buss Comnatiile! ° *f 



•••••< 



1. Double sided PC board with solder 
mask and silk screen and gold plated 
contact fingers. 

2. Selectable wait states. 

3. All address lines & data lines buf- 
fered! 

4. All sockets included. 

5. On card regulators. 

KIT INCLUDES ALL PARTS AND 
SOCKETS (except 2708s). Add $25. for 
assembled and tested. 



■*»• • it ir it iri 

i fta to *isi fea a 



**m m m m m m 



DEALER INQUIRIES INVITED! 



$69.95 kit 



SPECIAL OFFER: 



Our 2708s (450NS) are 
when purchased with above kit. 



$12.95 



•••< 



1A 



S1A& 



I 



8K LOW POWER RAM KIT $149 00 



KIT FEATURES: 



S-100 (Imsai/Attair) Buss Compatible! 



with 



1. Doubled sided PC Board 
mask and silk screen layout. 

Slated contact fingers, 
ill sockets included. 

3. Fully buffered on 
data lines. 

4. Phantom is jumper 
pin 67. 

5. FOUR 7805 regulators 
on card. 



solder 
Gold 



and 



all address 

selectable to 

are provided 




USES 21 L02 RAM'S! 



Fully Assembled & Burned In 

$179.00 

Blank PC Board w/ Documentation 

$29.95 

Low Profile Socket Set 13.50 

Support IC's (TTL & Regulators) 

$9.75 

Bypass CAP's (Disc & Tantalums) 

$4.50 



MOTOROLA QUAD OP - AMP 

MC 3401 PIN FOR PIN SU» 

FOR POPULAR LM 3900 

3 FOR $1 



RECTIFIER SPECIAL 

1 AMP 100PIV 

EPOXr CASE AXIAL LEADS 

15 FOR $1 



MOTOROLA 7805R VOLTAGE REGULATOR 

Same as standard 7805 except 750 MA output 
TO-220. 5VDC output. 

44c each or 10 for $3.95 



FULL WAVE BRIDGE 

4 AMP 200 PIV 
69Cea 10 FOR $5 75 



NOT ASSOCIATED WITH DIGITAL 
RESEARCH OF CALIFORNIA, THE 
SUPPLIERS OF CPM SOFTWARE. 



450 NS! 2708 EPROMS 450NS! 

Now full speed! Prime new units from a major U.S. Mfg. 450 N.S. 

Access time. 1 K x 8. Equiv. to 4-1 702 A's in one package. 
^-_ — _ Special Offer: $12.95 each when 

$15.75 ea. purchased with our 16K EPROM kit! 



Z-80 PROGRAMMING MANUAL 

By Mostek, The major Z-80 second source. The most detailed 
explanation ever on the working of the Z-80 CPU CHIPS. At 
least one full page on each of the 158 Z-80 instructions. A MUST 
reference manual for any user of the Z-80. 300 pages. Just off the 
press! A D.R.C. exclusive! $12.95 



POWER RECTIFIER #2 Motorola 

Stud Mount. 1N1187. 

35 AMPS. 300 PIV. 
Military Quality! $1.19 ea . or 4/53.50 



4K STATIC RAM'S 

2114. The new industry 
standard. Arranged as 1 K 
x4. Equivalent to 4-21 
L02's in 1 package! 18 
pin DIP. 2 chips give 1Kx8. 
2/$24. 8/$85. 



741 COP AMPS 

Mini Dip. Prime new 
units. Has computer 
Mfg's house number. 
12/$2. 100/$15. 



Jumbo Red Leds 

New by G.E. Like 

MV5024. Number 

SSL-22. 

6/$1. 25/$3.75 



OPCOA LED READOUT 

SLA-1. Common Anode. 
.33 inch character size. 
The original high efficiency 
LED display. 75c ea. 

or 4 for $2.50 



CMOS SPECIAL! 



CD 4001 -5for$1. 
CD 4011 - 5 for $1. 
CD 4013 -3 for $1. 



CD4040 - $1. each 

CD4042-2for$1. 

CD 4049 -3for$1. 



3 AMP RECTIFIER 

1N4721. Axial Lead. 200 PIV 

HEAVY DUTY! 

House numbered 



4 



for 



Metal 
Case 

$1.00 



Disc Capacitors 

.1 MFD 16V. P.C. 

leads. Most popular 

value. By Sprague. 

20/$ 1.00 



12VDC Relay by 

CDE. SPDT. Coil 

is 280 ohm. Small 

Size. $1.29 



Experimenter's Crystal 
262. 144KHZ. This fre- 
quency is 2 to the 18th 
power. Easily divided 
down to any power of 2, 
and even to 1HZ. New by 
CTS-Knight. A $5. value! 
$1.25 each 



HEAVY DUTY! 

Full Wave Bridge 

25AMP 50PIV 

$1.25 



GE Ni Cad Battery Pack 
3 Cell pack, gives 4 volts 
at 900MAH. Brand new, 
factory fresh. Each cell is 
2/3 "C" size. $4.50 /pack. 
Buy 3 packs (12 volts) 
for $10.95. Limited stock! 






Tantalum Capacitors 

1 MFD. .35V. By 
Kemet. Axial Lead. 
Best Value! 10/$1. 



GE 10 AMP Triac 
SC146D. House no. 
To-220 case. Rated 

10amps400PIV. 
75cea. 3/$2. 



Digital Research s) Corporation 

P. O. BOX 401247 • GARLAND, TEXAS 75040 •(214) 271-2461 



2N3904 House No. 

TO-92. NPN. 

VCEO-45. 

HFE 100 to 300 

10 for $1.00 



LS SERIES TTL 

74LS00 — 33c 74LS74 — 49c 

74LS02 — 35c 74LS90 — 69c 

74LS04 — 35c 74LS138— 89c 

74LS08 — 35c 74LS154— 1.49 

74LS10— 33c 74LS175— 1.10 

74LS20 — 33c 74LS367— 75c 

74LS73 — 49c 74LS368— 85c 



320 



TERMS: Orders under $15. add 75c. No COD's We 
accept VISA, MasterCharge and American Express 
Cards. Money Back Guarantee on all items' Texas 
Residents add 5% Sales Tax. WE PAY POSTAGE" 







138 



HARD COPY STORAGE A PROBLEM* 





IT'S EASY AND FUN 

TO BUILD YOUR OWN TEST EQUIPMENT 

WITH ICs 



Kilobaud, as thick as it is, is more like a floppy when it 
comes to standing on the bookshelf. Try the Kilobaud 
Library Shelf Boxes, . . . sturdy corrugated white dirt re- 
sistant cardboard boxes which will keep them from flop- 
ping around. We have self-sticking labels for the boxes, 
too, not only for Kilobaud, but also for 73 Magazine . . . 
and for Personal Computing, Radio Electronics, Inter- 
face Age, and Byte. Ask for whatever stickers you want 
with your box order. Hams may want out labels for CQ, 
QST or Ham Radio. They hold a full year of Kilo- 
baud ... or 73. Your magazine library is your prime 
reference, keep it handy and keep it neat with these 
strong library shelf boxes . . . $2.00 for the first box and 
$1.50 for each additional box. Be sure to specify which 
labels we should send. Have your credit card handy and 
call our toll-free order number 800-258-5473, or use the 
order card in the back of the magazine and mail to 

KILOBAUD LIBRARY SHELF BOXES Peterborough, NH 03458 



ICT 






J4V5 



FOMENT 



VOUT»ft / Of 

the 13 

TEST&Utfi-V* 
LIBRARY 



NT 



mm 



lllllllllllllf 



»C TEST EQUIPMENT M.tS* 



ICs have greatly simplified even th« most sophisticated pieces of tsst 
equipment, making them fun to build. You can saws thousands of dollars 
by building your own equipment end hsvs a teet lab which would make a 
university jealous. 

A brand new book, IC TEST EQUIPMENT, hes construction projects 
for meking 37 pieces of tsst equipment. Square weve generator, pulse 
gsnsrstor, fcimsr, eudio sythssizsr, AFBK gsnsrstor, sync generator, 
counters, capacity meter, etc. 

Order this book today and gat started building your own lab. 

Uss the order cord in the back of the magazine or itemize your order on 
o separate piece of paper and mail to: KILOBAUD BOOK NOOK, Peter 
borough NH 03458 or phono toll free 800-258-5473 

Be sure to include check or dstsilsd credit information. 'Add 81 ship- 
ping and handling charge for ssch order. 




Every month there are computer article* in 73 ... a lot of them. Fact is. »ince February 1976. 73 Magazine 
hat published articles directed to the Computeritt and Soon-to-be Computerist. There are also a lot of articles 
that computer hobbyists will be needing to read which are not exactly computer articles such as on regulated 
power supplies ... on making printed circuit boards ... on how various circuits work . things like that which 
hardware men in particular need to read ... and which software people need even more, since they are a bit 
behind on hardware. 

In recent issues there have been articles on computerized satellite tracking (with software). RTTY using a uP, 
using old (inexpensive) Teletypes, building a Polymorphic video board, making instant PC boards using the new 
color-key technique, the TTL one-shot, what computers can and can't do, a hamsheck frle handler (software), the 
bit explosion - 8 12 16'. backward branch the easy way with the 6800. the hexadecimal . . etc. 

Any one of these articles could easily be worth the cost of a full year of 73. One good program could save youj 
days of work. One good interface project could make an enormous difference. In general, 73 triea to present m 
too complicated construction protects . . . things you can make in a day or two. 



changing 

lots of kleas 

bout 
Computers 



Yes! Enter my subscription to 73 MAGAZINE for 1 year starting with the next published issue —only $15.00. 
Call 



Name . 
Address 
City _ 



State 



Zip 



enclosed □ Cash D Check D Money Order 



Bill: D Master Charge D Bank Amencard/V ISA D American Express 
Card # . Expiration date 



One of the fundamental policies is that no articles will be published in both 73 and Kilobaud. 
This is. in a way. unfair because it keeps some great computer articles away from computensts. 
You really must get both magazines to keep up to date with what is going on When you 
subscribe to both, you will not be getting duplication 



Signature 



□ Bill me direct (I've signed above) Allow 6 weeks for subscription processing. 
Toll Free Subscription Number: (800) 258-5473 
Th,t offer exp.n, m 60 days. 73 MAGAZINE. PETERBOROUGH NH Q3A58 



KB/4/78 



139 



beginner's •introductory 



•THE STORY OF COMPUTERS by Donald 
D. Spencer is to computer books what Dick 
and Jane is to novels . . . extremely elemen- 
tary, gives the non-computerist a fair idea of 
what the hobbyist is talking about when he 
speaks computer lingo. Attempts to explain 
what computers are and can do to a spouse, 
child or any un-electronics-minded friend. 
$4.95. * 

• HOBBY COMPUTERS ARE HERE If you 

(or a friend) want to come up to speed on 
how computers work . . . hardware and soft- 
ware . . . this is an excellent book. It starts 
with the fundamentals and explains the 
circuits, the basics of programming, along 
with a couple of TVT construction projects, 
ASCI I -Baudot, etc. This book has the highest 
recommendations as a teaching aid for new- 
comers. $4.95.* 

•THE NEW HOBBY COMPUTERS! This 
book takes it from where "Hobby Computers 
Are Here" leaves off, with chapters on Large 
Scale Integration, how to choose a micro- 
processor chip, an introduction to program- 
ming, low cost I/O for a computer, computer 
arithmetic, checking memory boards, a 
Baudot monitor/editor system, an audible 
logic probe for finding those tough problems, 
a ham's computer, a computer QSO machine 
. . . and much, much more! $4.95.* 

• HOME COMPUTERS: 2 10 Questions & 
Answers by Rich Didday. Two books aimed 
exclusively at the novice computer hobbyist/ 
home computer user. Written in a rather 
unusual style which has a beginner asking 
questions which are answered by a person 
with a substantial background in computers 
and personal computing. The questions are 
just the kind beginners come up with . . . and 
the answers are presented in easy-to-under- 
stand terms (usually with a diagram to 
illustrate the point). Both the hardware and 
software aspects of home computing are 
covered from A to Z. An index in both books 
makes them ideal as reference material for 
anyone. Volume I: Hardware — $7.95*; 
Volume 2: Software - $6.95*. 




INTBOOUCriON 
TO 

WooRocessofts 




• MICROPROCESSORS FROM CHIPS TO 
SYSTEMS by Rodnay Zaks is a complete and 
detailed introduction to microprocessors and 
microcomputer systems. No preliminary 
knowledge of computers or microprocessors is 
required to read this book, although a basic 
engineering knowledge is naturally an 
advantage. Intended for all wishing to under- 
stand the concepts, techniques and com- 
ponents of microprocessors in a short time. 
$9.95.* 

• MICROCOMPUTER PRIMER by Mitchell 
Waite and Michael Pardee. Describes basic 
computer theory, explains numbering sys- 
tems, and introduces the reader to the world 
of programming. Describes the world of 
microcomputing in "real world" terminology. 
No better way of getting involved with the 
exciting new hobby of microcomputing. 
$7.95.* 

• INTRODUCTION TO MICROPRO- 
CESSORS by Charles Rockwell of MICRO- 
LOG is an ideal reference for the individual 
desiring to understand the hardware aspects 
of microprocessor systems. Describes the 
hardware details of computer devices in terms 
the beginner can understand, instead of treat- 
ing the micro chip as a "black box." General 
information about hardware systems is pro- 
vided. Specific systems are not described and 
programming is only briefly discussed. $17.50 
US and Canada, $20 elsewhere.* 

• AN INTRODUCTION TO MICROCOM- 
PUTERS, VOLS. 1 AND 2 by Adam Osborne 
Associates, are references dealing with micro- 
computer architecture in general and specifi- 
cally with details about most of the common 
chips. These books are not software-oriented, 
but are invaluable for the hobbyist who is 
into building his own interfaces and pro- 
cessors. Volume 1 is dedicated to general 
hardware theory related to micros, and 
Volume 2 discusses the practical details of 
each micro chip. (Detailed review in Kilobaud 
#2) Volume 1 - $7.50*; Volume II - 
$12.50.* 



computer games 



• WHAT TO DO AFTER YOU HIT RETURN 
PCC's first book of computer games ... 48 
different computer games you can play in 
BASIC . . . programs, descriptions, muchly 
illustrated. Lunar landing, Hammurabi, King, 
Civel 2, Qubic 5, Taxman, Star Trek, Crash, 
Market, etc. $8.00.* 

•SCELBI'S GALAXY GAME FOR THE 
"6800" Here's a new twist in computer games 
by Robert Findley/Raymond Edwards. 
"Galaxy" pits the operator of a spaceship 
against alien craft, as well as such variables as 
speed, time, and ammunition. No two games 
are the same! $14.95.* 

• 101 BASIC COMPUTER GAMES Okay, so 
once you get your computer up and running 




in BASIC, then what? Then you need some 
programs in BASIC, that's what. This book 
has 101 games for you, from very simple to 
real buggers. You get the games, a description 
of the games, the listing to put in youv 
computer and a sample run to show you how 
they work. Fun. Any one game will be worth 
more than the price of the book for the fun 
you and your family will have with it. $7.50.* 

• SCELBI'S FIRST BOOK OF COMPUTER 
GAMES Need a game for your 8008 or 8080 
microprocessor? Has three popular games, 
"Space Capture," "Hexpawn," and "Hang- 
man." Complete flowcharts, logic description, 
program listing, and instructions are provided. 
A must for the game freak! $14.95.* 



Use the order card in the back of this magazine or itemize your order on a separate piece of paper and mail to: 

Kilobaud Book Department Peterborough NH 03458 

Be sure to include check or detailed credit card information 

^fc Add $1.00 shipping & handling charge for each order. Note: Prices subject to change on books not published by 73 Magazine. 



software • programming 



• DISCOVERING BASIC - A Problem 
Solving Approach by Robert E. Smith deals 
with progressively more complex problems 
which allow the reader to discover the vocab- 
ulary of BASIC language as he develops skill 
and confidence in putting it to work. Clear 
and concise explanations. Problems used 
cover a wide range of interests — insurance, 
geometry, puzzles, economics, etc. $6.85.* 

• BASIC New 2nd Edition, by Bob Albrecht. 
Self-teaching guide to the computer language 
you will need to know for use with your 
microcomputer. This is one of the easiest 
ways to learn computer programming. 
$4.95.* 

• A QUICK LOOK AT BASIC by Donald D. 
Spencer. A perfect reference for the beginning 
programmer. Assumes that the reader has no 
previous programming experience and is a 
self-teaching guide for the individual desiring 
to learn the fundamentals of BASIC. $4.95.* 

• MY COMPUTER LIKES ME . . . WHEN I 
SPEAK BASIC An introduction to BASIC . . . 
simple enough for your kids. If you want to 
teach BASIC to anyone quickly, this book is 
the way to go. $2.00.* 

• FUN WITH COMPUTERS AND BASIC by 

Donald D. Spencer, contains an easy-to-under- 
stand explanation of the BASIC Programming 
Language and is intended for persons who 
have had no previous exposure to computer 
programming. Over half the book is devoted 
to problems using games, puzzles, and math- 
ematical recreations. A superior book for 
self-teaching and learning computer pro- 
gramming. $6.95.* 

• SIXTY CHALLENGING PROBLEMS 
WITH BASIC SOLUTIONS by Donald Spen- 
cer, provides the serious student of BASIC 
programming with interesting problems and 
solutions. No knowledge of math above 
algebra required. Incudes a number of game 
programs, as well as programs for financial 
interest, conversions and numeric manipula- 
tions. $6.95.* 

• THE SECRET GUIDE TO COMPUTERS 

Parts 1, 2, and 3 by Russ Walter. Part One 
describes computers in general, and after 
reading for ten minutes you will be writing 
simple BASIC programs! Part Two discusses 
computer applications. It's one thing to 
master the syntax of a language such as 
BASIC and another to solve problems using 
the new tool. Part Three describes program- 
ming languages. Ever heard of APL and 
QLISP? BASIC is not the only language used 
to program computers. 7th Edition. Part I - 
$2.75*; Part II - $2.50*; Part III - $3.50.* 

• SOME COMMON BASIC PROGRAMS 

published by Adam Osborne & Associates, 
Inc. Perfect for non-technical computerists 
requiring ready-to-use programs. Business pro- 
grams, plus miscellaneous programs. Invalu- 
able for the user who is not an experienced 
programmer. All will operate in the stand- 
alone mode. $7.50 paperback.* 

• Scientific Research Instruments' BASIC 
SOFTWARE LIBRARY is a complete do-it- 
yourself kit. Written in everybody's BASIC 
immediately executable in ANY computer 
with at least 4K, no other peripherals needed. 
Vol. I contains business and recreational 
programs and is 300 pages. Vol. II is 260 
pages and contains math, engineering, sta- 



COMPUTER 
UKES 




•when! speak in BASIC 



fflioroproces/or - 

Programming £j$ 

tot C«m»p«>»«>» H«bJ»<i/*/ V_ S 






SOMF COMMON 

BASIC 

PROGRAMS 




Fun 
with 
iputers 

and 
BASIC 

laid D. Spencer 



ION 



THE SECRET U 
COmPUTEl 



WttT'l 







*»«.** 



HASH 

SOFTWAR 

UBR. 







m* n 



FORTRAN 

Procxamm 



FORTRAN 
Workbook 




Caroeior 




tisticsand plotting programs. Vol. Ill contains 
money managing, advanced business programs 
such as billing, A/R, inventory, payroll, etc. 
Vol. IV contains general purpose programs 
like loans, rates, retirement, plus games: 
Poker, Enterprise (take charge while Capt. 
Kirk is away), Football and more! Vol. V is 
filled with experimenter's programs including 
games, pictures and misc. problems like 
"logic." Vols. I & II $24.95,* Vol. Ill 
$39.95,* Vol. IV & V $9.95 each.* 

• MICROPROCESSOR PROGRAMMING for 
Computer Hobbyists by Neill Graham is for 
the hobbyist interested in intermediate and 
advanced techniques of programming and 
data structuring. Written to take up where the 
computer manufacturers' instruction manuals 
and the introductory programming language 
texts leave off. $8.95.* 

• ADVANCED BASIC - Applications and 
Problems by James Coan is for those who 
want to extend their expertise with BASIC. 
Offers advanced techniques and applications. 
$6.95.* 

• 8080 PROGRAMMING FOR LOGIC 
DESIGN Ideal reference for an in-depth 
understanding of the 8080 processor. Appli- 
cation-oriented and the 8080 is discussed in 
light of replacing conventional, hard-wired 
logic. Practical design considerations are pro- 
vided for the implementation of an 8080- 
based control system. $7.50.* 

• 8080 SOFTWARE GOURMET GUIDE 
AND COOKBOOK If you have been spending 
too much time developing simple routines for 
your 8080, try this new book by Scelbi 
Computing and Robert Findley. Describes 
sorting, searching, and many other routines 
for the 8080 user. $9.95.* 

• 6800 PROGRAMMING FOR LOGIC 
DESIGN Oriented toward the industrial user, 
this book describes the process by which 
conventional logic can be replaced by a 6800 
microprocessor. Provides practical informa- 
tion that allows an experimenter to design a 
complete micro control system for the 
"ground up." $7.50.* 

• 6800 SOFTWARE GOURMET GUIDE & 
COOKBOOK If you have been spending too 
much time developing routines for your 6800 
microprocessor, try the new book by Scelbi 
Computing and Robert Findley. Describes 
sorting, searching, and many other routines 
for the 6800 user. $9.95.* 

• FORTRAN PROGRAMMING by Donald 
Spencer. FORTRAN was designed for com- 
plex numeric calculations; and possesses ex- 
tended I/O capability. It is easily learned, as it 
is an English-like computer language. $7.50.* 

• FORTRAN WORKBOOK by Donald 
Spencer. Provides practical examples and 
problems to solve. Flowcharting is also dis- 
cussed. Almost all micros support BASIC — it 
won't be long before FORTRAN is common- 
place. $3.95.* 

• CHEMISTRY WITH A COMPUTER by Paul 
A. Cauchon, contains a collection of tutorial, 
simulation and problem-generation computer 
programs. Usable with almost any chemistry 
course in the high school or college level. 
$9.95.* 



Use the order card in the back of this magazine or itemize your order on a separate piece of paper and mail to: 

Kilobaud Book Department Peterborough NH 03458 

Be sure to include check or detailed credit card information 

^k Add $1.00 shipping & handling charge for each order. Note: Prices subject to change on books not published by 73 Magazine. 



hardware 



• MICROPROCESSOR INTERFACING 

TECHNIQUES by Austin Lesea & Rodnay 
Zaks will teach you how to interconnect a 
complete system and interface it to all the 
usual peripherals. It covers hardware and 
software skills and techniques, including the 
use and design of model buses such as the 
IEEE 488 or $100. $9.95.* 

•TTL COOKBOOK by Donald Lancaster. 
Explains what TTL is, how it works, and how 
to use it. Discusses practical applications, such 
as a digital counter and display system, events 
counter, electronic stopwatch, digital volt- 
meter, and a digital tachometer. $8.95.* 
•CMOS COOKBOOK by Don Lancaster. 
Details the application of CMOS, the low 
power logic family suitable for most appli- 
cations presently dominated by TTL. Re- 
quired reading for every serious digital 
experimenter! $9.95.* 

• TVT COOKBOOK by Don Lancaster, 
describes the use of a standard television 
receiver as a microprocessor CRT terminal. 
Explains and describes character generation, 
cursor control and interface information in 
typical, easy-to-understand Lancaster style. 
$9.95.* 

• BUILD-IT BOOK OF DIGITAL ELEC- 
TRONIC TIMEPIECES by Robert Haviland is 
a data-packed guide to building every time- 
keeping device you can imagine: rugged ship- 
board clocks, second-splitting digital IC 
chronometers, decorator digital clocks, a pre- 
cision timer, a frequency-period meter, a tide 
and moon clock, an automatic alarm setter, 
etc. Including full-size printed circuit board 
layouts. $6.95.* 



•COMPUTER DICTIONARY by Donald D. 
Spencer. Defines words and acronyms used by 
computerists in a clear, easy to understand 
style. This reference is a must for the 
individual getting started in the world of 
microcomputers. $5.95.* 

• BRAND NEW DICTIONARY This micro- 
computer dictionary fills the need to become 
quickly acquainted with the terminology and 
nomenclature of the revolution in computers. 
There is also a comprehensive electronics/ 
computer abbreviations and acronyms 
section. $15.95.* 

• THE UNDERGROUND BUYING GUIDE 

Here is a handy guide for the electronics 
enthusiast. Over 600 sources of equipment 
and literature are provided. Cross-referenced 
for ease of use. Electronic publishing houses 
are'also listed. $5.95 each.* 



• NOVICE STUDY GUIDE The most 
complete Novice study guide available. It is 
brand new. This is not only invaluable for 
anyone wanting to get started in amateur 
radio, but also it is about the only really 
simple book on the fundamentals of elec- 
tricity and electronics. $4.95.* 

• GENERAL CLASS STUDY GUIDE Takes 
over on theory where the Novice book leaves 
off. You'll need to know the electronic 
theory in this to work with computers and 
you'll not find an easier place to get the 
information. $5.95.* 

•SSTV HANDBOOK This excellent book 
tells all about it, from its history and basics to 
the present state-of-the-art techniques. Hard- 
bound $7,* Softbound $5.* 



MiCROPROCt 

INTERFACING 
TECHNIQUES 







general 




January - -> un,r 



COMPUTER 

""•14 O. ._. 



MICROCOMPUTER 










amateur radio books 



NOV tCC 

rruov 




•THE "COMPULATOR" BOOK - Building 
Super Calculators & Minicomputer Hardware 
with Calculator Chips by R. P. Haviland, 
provides ideas, design info and printed circuit 
boards for calculator chip projects, measure 
time, tie in with a Teletype to create a 
virtually infinite memory system, and count- 
less other functions. $7.95.* 

TEST EQUIPMENT LIBRARY 

•VOL I COMPONENT TESTERS Build your 
own test equipment and save a bundle (and 
have a lot of fun). Volume I of the 73 Test 
Equipment Library shows you how to build 
and use transistor testers (8 of 'em), three 
diodes testers, 3 IC testers, 9 voltmeters and 
VTVMs, 8 ohmmeter, 3 inductance meters, 
and a raft of other gadgets for checking 
temperature, crystals, Q, etc. $4.95.* 

•VOL II AUDIO FREQUENCY TESTERS If 

you're into audio such as digital cassette 
recording, RTTY, Baudot vs ASCII, SSTV, 
SSB, Touchtone or even hi-fi you'll want to 
have this book full of home built test equip- 
ment projects. Volume II $4.95.* 

•VOL III RADIO FREQUENCY TESTERS 

This is of more interest to hams and CBers: 
test equipment you can build for checking 
out transmitters and receivers, signal gener- 
ators, noise generators, crystal calibrators, 
GDOs, dummy loads. $4.95.* 

• VOL. IV IC TEST EQUIPMENT Become a 
trouble-shooting wizard. All you need to 
know about pulse, audio and sync generators, 
frequency counters, digital component 
testers, logic probes and more! Plus a cumu- 
lative index for all four volumes of the 73 
Test Equipment Library. $4.95.* 



•1976 PERIODICAL GUIDE FOR COM- 
PUTERISTS is a 20-page book which indexes 
over 1,000 personal computing articles for the 
entire year of 1976 from Byte, Creative 
Computing, Digital Design, Dr. Dobbs 
Journal, EDN, Electronic Design, Electronics, 
Interface Age, Microtrek, Peoples Computer 
Company, Popular Electronics, QST, Radio 
Electronics, SCCS Interface and 73 Amateur 
Radio. Price $3.00.* New January — June 
1977 Edition (includes Kilobaud) - $3.00.* 



• TYCHON'S 8080 OCTAL CODE CARD 

Slide rule-like aid for programming and 
debugging 8080 software contains all the 
mnemonics and corresponding octal codes. 
Also available, Tychon's 8080 Hex Code 
Card, same as above only has hex codes 
instead of octal. $3.00 each.* 



• VHF ANTENNA HANDBOOK This new 
handbook details the theory, design and 
construction of hundreds of different VHF 
and UHF antennas. Packed with fabulous 
antenna projects you can build. $4.95.* 

• WEATHER SATELLITE HANDBOOK 

Simple equipment and methods for qettirvq 
good pictures from the weather satellite. Dr. 
Taggart WB8DQT $4.95.* 

• THE NEW RTTY HANDBOOK is a brand 
new 1977 edition and the only up-to-date 
RTTY book available. The state-of-the-art has 
been changing radically and has made all 
previous RTTY books obsolete. It has the 
latest circuits, great for the newcomer and the 
expert alike. $5.95.* 



Use the order card in the back of this magazine or itemize your order on a separate piece of paper and mail to: 
Kilobaud Book Department Peterborough NH 03458 Be sure to include check or detailed credit card information 
% Add $1.00 shipping & handling charge for each order. Note: Prices subject to change on books not published by 73 Magazine. 




/ab\\\ty. 



Dave Shirk looks 
copy of KB. 



up from his 



WHO'S BEHIND 
THE KILOBAUD? 

In between selling sub- 
scriptions and seeing the 
other exhibits at computer 
shows, Wayne snaps pictures 
of people you have been 



seeing and will be seeing at 
shows. How many of them 
can you recognize behind the 
Kilobauds? 

On page 143 of the March 
issue there was a picture of 
Dave Shirk, President of 
Technical Systems Con- 
sultants. Okay ... so you 
missed that one. Now that 
you know who he is, be sure 
to get together with Dave at 
the TSC booth at your next 
show. 

Kilobaud is the most read 
magazine in the microcom- 
puter field. It hasn't been 
difficult to find key industry 
people reading KB! 



kilobaud 



READ IT YOURSELF! 



If you are not yet a sub- 
scriber to Kilobaud, we 
need you and you need us. 
There is a lot of data in Kilo- 
baud that you will want to 
have on hand . . . the 
magazine is like a continu- 
ing encyclopedia of micro- 
computing and programs. 
You never know when you 
are desperately going to 
need something from a past 
issue . . . and you'll want it 
immediately. The cost per 



year is not significant . . . 
$15 at present for $24 worth 
of magazines. 

You may have noticed 
that Kilobaud has more arti- 
cles than any of the other 
magazines. If you'll keep 
track of how long it takes 
you to read Kilobaud as 
compared to the other com- 
puter magazines, you'll see 
you are getting a great 
bargain at $15 per year. 



WHO'S BEHIND 

THE 
KILOBAUD? 




WHO'S THIS? 

Another partly hidden 
man that you've seen ... if 
you've been to any shows. 



You want a hint, right? Think 
diskly ... or waite until the 
unveiling next month in 
KILOBAUD. 



SUBSCRIBE TODAY! 
For Instant Subscriptions Call Our Toll Free Number 

l-(800) 258-5473 

Have your credit card handy! 

Kilobaud • Peterborough NH 03458 



143 



1977 <K$ BACK ISSUES 




Issue #1— $5.00; #2 thru #12— $3.00 each. 
Please send Kilobaud back issues: 

Issues JAN 77-$5 Issues MAY 77— $3 

issues FEB 77— $3 issues JUNE 77— $3 

issues MAR 77— $3 issues JUL 77— $3 

issues APR 77— $3 issues AUG 77— $3 



issues SEPT 77— $3 

issues OCT 77— $3 

issues NOV 77 — $3 

issues DEC 77— $3 



TOTAL: 



l: 



144 



4/78 



Have credit card # handy and call 

TOLL FREE (800) 258-5473 

Kilobaud • Peterborough NH 03458 



Add $1.00 shipping & handling for each order. 
□ BankAmericard/Visa El Master Charge n American Express 

Card # Expiration date 

Signature 

Name 



Address 
City 



State 



Zip 




COMPUTER 

MAILING LIST 

Completely re-written and updated to include dealers, clubs, 
publications, and manufacturers. (It's the one we use for our 
mailings and we update it daily.) The list has over 2000 
names painstakingly gathered from manufacturers, magazine 
ads, new product releases, hobby computer shows, and direct 
mail. You can buy this list printed on self-sticking labels for 
only $50. 




pETEnboitouqh nU 07498 



i 

o 

o 
o 

o 



SEND FOR THESE GREAT BOOKS TODAY! 



o 
o 
o 
o 

° 
Z 

© 
o 

S 

o 
o 
o 
o 





o 

I 



o 

z 

o 
o 

o 



s 

o 

o 

o 
o 
o 

i 



• HOBBY COMPUTERS ARE HERE If you (or a friend) 
want to come up to speed on how computers work 
. . . hardware and software . . . this is an excellent book. 
It starts with the fundamentals and explains the cir- 
cuits, the basics of programming, along with a couple of 
TVT construction projects, ASCII-Baudot, etc. This book 
has the highest recommendations as a teaching aid for 
newcomers. $4.95 

• THE NEW HOBBY COMPUTERS! This book takes it 
from where "Hobby Computers Are Here" leaves off, 
with chapters on Large Scale Integration, how to choose 
a microprocessor chip, an introduction to programming, 
low cost I/O for a computer, computer arithmetic, check- 
ing memory boards, a Baudot monitor/editor system, an 
audible logic probe for finding those tough problems, a 
ham's computer, a computer QSO machine . . . and 
much, much more! Everything of interest is there in one 
volume. Don't miss this tremendous value! Only $4.95 



call toll-free 
back of this 



Have your credit card handy and 
800258-5473, or use the card in the 
magazine and send your check to: 

KILOBAUD Book Dept. • Peterborough, NH 03458 

(Be sure to include $1.00 per order for shipping & handling.) 



ffTP 



° 

o 
o 

o 

Z 

Z 
o 
o 
o 
o 
o 

° 

o 

z 

° 
° 



S 

o 
o 
o 

! 

o 

o 

° 

o 

° 

o 
o 
o 

o 

o 

o 



o 

o 
o 
o 

i 

° 

o 
o 

o 
o 




1977 kilobaud Binders 

Keep your Kilobauds from being lost or 
damaged in these handsomely appointed binders 
with rich blue covers and gold lettering. Each 
binder holds 12 issues, making an EXCELLENT 
REFERENCE HANDBOOK. Several binders 
form a quality library you can be proud of. 

Order yours today . . . only $6.50 each ... 2 for 
$12.00. 

Use the order card in the back of this magazine or itemize your 
order on a separate piece of paper and mail to: 

Kilobaud Binders Peterborough NH 03458 
Be sure to include check or detailed credit card information 
Add $1.00 shipping & handling charge for each order. 



MOVING? 



Let us know 8 weeks in advance so that you won't miss 
a single issue of Kilobaud. 

Attach old label where indicated and print new address 
in space provided. Also include your mailing label 
whenever you write concerning your subscription. It 
helps us serve you promptly. Write to: 



KILOBAUD • PETERBOROUGH NH 03458 



D Address change only 

□ Extend subscription 

□ Enter new subscription 

□ 1 year $15.00 



□ Payment enclosed 

(1 extra BONUS issue) 
D Bill me later 



If you have no label handy ; print OLD address here. 
Call 



03 Name 



X 



Address 



fc City. 



Name 



State 



Zip 



print NE W address here: 



Call 




Address 
City 



State. 



Zip 



zzzv 



145 



it's a good bet the company 
bought your computer from 



you bought your 



It's no great surprise! Most 
computer companies got their 
start in the digital logic end of 
the business They were great 
at building calculators and 
later computers but when it 
came right down to it, most 
just didn't have the experi- 
ence necessary to build the 
peripherals to support their 
computer products. And that 
left a vacuum! 

At Heath we had the advan- 
tage. Our years of experience 
in electronic kit design gave 
us plenty of background with 
not only digital logic but 
mechanical and video design 
as well. And our assembly 
manuals and documentation 
are world-famous for easy to 
understand instructions. 

We built the world's first digi- 
tal color television, a unique 
fully synthesized FM tuner, 
digital frequency counters, 
clocks — even a digital bath- 
room scale. 

So when we entered the per- 
sonal computing market we 
had the "know-how" to build 
not only our outstanding H8 
and Hll, 8 and 16 -bit comput- 
ers, but, in addition, a com- 
plete line of supporting 
peripheral kits! 

Select the H9 Video Terminal, 
the H10 Papertape Reader/ 
Punch, and very soon our 
own, complete, Floppy Disk 
system. Each was designed 
with the systems approach in 
mind. Each was conceived to 
integrally mesh with not only 
our own computers, but 



through our set of sophisti 
cated interfaces, most others 
as well. And in that Way we're 
making every effort to fill the 
vacuum the others left! 

So when you're ready to 
communicate with your com- 
puter turn to Heath. We've got 
the peripheral kits you'll need 
and at prices you can afford. 

Maybe the company who sold 
you your computer didn't 
think about peripherals - but 
we sure did! And come to 
think about it maybe that's 
why you should come to 
Heath... in the first place. 



_. Heathkit 
Compul 




Heathkit Catalog 





ead about nearly 

400 money-saving, 

fun-to-build 

electronic kits. 



Use coupon to send for 

your mail order catalog 

or bring coupon to a 

Heathkit Electronic 

Center for your catalog. 



r 



HEATH 



Schlumberger 



Heath Company, Dept. 351-400 
Benton Harbor, Ml 49022 



H5 



1 



Please send me my FREE Catalog. I am not on your mailing list. 



Name. 



Address. 



City. 



State. 



CP-146 



Zip- 



•*mIMh* *- 


P t 






!^™~- * 



AVAILABLE LOCALLY AT 
HEATHKIT ELECTRONIC CENTERS 

(Units of Schlumberger Products 
Corporation) Retail prices on some 
products may be slightly higher. 

ARIZONA: Phoenix, 85017, 2727 W. Indian School 
Rd., Phone: 602-279-6247; CALIFORNIA: Anaheim, 
92805, 330 E. Ball Rd., Phone: 714-776-9420; El 
Cerrito, 94530, 6000 Potrero Ave., Phone: 415-236- 
6870; Los Angeles, 90007, 2309 S. Flower St., 
Phone: 213-749-0261; Pomona, 91767, 1555 Orange 
Grove Ave. N., Phone: 714-623-3543; Redwood 
City, 94063, 2001 Middlefield Rd., Phone: 415-365- 
8155; Sacramento, 95825, 1860 Fulton Ave., Phone: 
916-486-1575; San Diego (La Mesa, 92041), 8363 
Center Dr., Phone: 714-461-0110; San Jose (Camp- 
bell, 95008), 2350 S. Bascom Ave., Phone: 408- 
377-8920; Woodland Hills, 91364, 22504 Ventura 
Blvd., Phone: 213-883-0531; COLORADO: Denver, 
80212, 5940 W. 38th Ave., Phone: 303-422-3408; 
CONNECTICUT: Hartford (Avon, 08001), 395 W. 
Main St. (Rte. 44), Phone: 203-678-0323; FLORIDA: 
Miami (Hiateah, 33012), 4705 W. 16th Ave., Phone: 
305-823-2280; Tampa, 33614, 4019 West Hills- 
borough Ave., Phone: 813-886-2541; GEORGIA: 
Atlanta, 30342, 5285 Roswell Rd., Phone: 404-252- 
4341; ILLINOIS: Chicago, 60645, 3462-66 W. De- 
von Ave., Phone: 312-583-3920; Chicago (Downers 
Grove, 60515), 224 Ogden Ave., Phone: 312-852- 
1304; INDIANA: Indianapolis, 46220, 2112 E. 62nd 
St., Phone: 317-257-4321; KANSAS: Kansas City 
(Mission, 66202), 5960 Lamar Ave., Phone: 913- 
362-4486; KENTUCKY: Louisville, 40243, 12401 
Shelbyville Rd., Phone: 502-245-7811; LOUISIANA: 
New Orleans (Kenner, 70062), 1900 Veterans 
Memorial Hwy., Phone: 504-722-6321; MARYLAND: 
Baltimore, 21234, 1713 E. Joppa Rd., Phone: 301- 
661-4446; Rockville, 20852, 5542 Nicholson Lane, 
Phone: 301-881-5420; MASSACHUSETTS: Boston 
(Peabody, 01960), 242 Andover St., Phone: 617- 
531-9330; Boston (Wellesley, 02181), 165 Wor- 
cester Ave. (Rt. 9 just west of Rt. 128), Phone: 
617-237-1510; MICHIGAN: Detroit, 48219, 18645 
W. Eight Mile Rd., Phone: 313-535-6480; E. De- 
troit, 48021, 18149 E. Eight Mile Rd., Phone: 313- 
772-0416; MINNESOTA: Minneapolis (Hopkins, 
55343), 101 Shady Oak Rd., Phone: 612-938-6371; 
MISSOURI: St. Louis (Bridgeton), 63044, 3794 
McKelvey Rd., Phone: 314-291-1850; NEBRASKA: 
Omaha, 68134, 9207 Maple St., Phone: 402-391- 
2071; NEW JERSEY: Fair Lawn, 07410, 35-07 
Broadway (Rte. 4), Phone: 201-791-6935; Ocean, 
07712, 1013 State Hwy. 35, Phone: 201-775-1231; 
NEW YORK: Buffalo (Amherst, 14226), 3476 Sheri- 
dan Dr., Phone: 716-835-3090; Jericho, Long !*• 
land, 11753, 15 Jericho Turnpike, Phone: 516-334- 
8181; Rochester, 14623, 937 Jefferson Rd., Phone: 
716-244-5470; White Plains (North White Plains, 
10603), 7 Reservoir Rd., Phone: 914-761-7690; 
OHIO: Cincinnati (Woodlawn, 45215), 10133 
Springfield Pike, Phone: 513-771-8850; Cleveland, 
44129, 5444 Pearl Rd., Phone: 216-886-2590; Col- 
umbus, 43229, 2500 Morse Rd., Phone: 614-475- 
7200; Toledo, 43615, 48 S. Byrne Rd., Phone: 419- 
537-1887; PENNSYLVANIA: Philadelphia, 19149, 
6318 Roosevelt Blvd., Phone: 215-288-0180; Frazer 
(Chester Co.), 19355, 630 Lancaster Pike (Rt. 30), 
Phone: 215-647-5555; Pittsburgh, 15235, 3482 Wm. 
Penn Hwy., Phone: 412-824-3564; RHODE ISLAND: 
Providence (Warwick, 02886), 558 Greenwich 
Ave., Phone: 401-738-5150; TEXAS: Dallas, 75201, 
2715 Ross Ave., Phone: 214-826-4053; Houston, 
77027, 3705 Westheimer, Phone: 713-623-2090; 
VIRGINIA: Aiexandria, 22303, 6201 Richmond 
Hwy., Phone: 703-765-5515; Norfolk (Virginia 
Beach, 23455), 1055 independence Blvd., Phone: 
804-460-0997; WASHINGTON: Seattle, 98121, 2221 
Third Ave., Phone: 206-682-2172; WISCONSIN: 
Milwaukee, 53216, 5215 W. Fond du Lac, Phone: 
414-873-8250. 



146 



















i 

r 
1 

( 










I 




r 






r 

1 

! 

i 

1 

• 










- 


: 


c 


kil 


lo 


baud 




I 




index of advertisers j 


A38 Advanced Computer Products 129 9 




A48 Alpha Data Systems 44 




* Amateur Computer Group of NJ (TCF) 79 




A43 ATV Research 103 




B26 Barnes Electronics 84 ■ 




B28 B & G Enterprises 62 




B27 Byte Shop of Santa Barbara, CA 1 23 




C50 California Industrial 126 




C53 Capital Equipment Brokers 78 




C36 Computalker Consultants 85 




C28 The Computer Corner 103 




C64 Computer Corner of NJ 84 


i 




C44 Computer Microsystems 103 


I 

i 




C34 Computer Store, Inc. 42, 43 




• Computer Systems Design 50, 85 




C31 Computer Workshop 59 




C65 Contemporary Marketing 121 9 




C57 Cybermate 78 9 




D13 Delta Electronics 134 




D12 Digital Group 29 




D20 Digital Research Corporation 138 9 




D26 Diversified Micro Products Corporation 113 




til Electronic Systems 109 




* Felsburg Associates, Inc. 123 9 




F4 Floto, Charles 84 




F8 Forethought Products 50 




G4 Godbout 130 




G15 GRE 113 




H20 Hayes 63 




H5 Heath CIM, 121, 122, 146 




113 Integrand Research Corporation 100 




19 Integrated Circuits 136 




110 International Data Systems, Inc. 34 




121 Intertec Data Systems 15 




J1 James Electronics 132,133 




M17 Marketline 103 




M27 Microcom 103 9 




M16 Microcomputers, Inc. 122 




M30 Micro Computer Devices 51 9 




M31 The Micro Works 49 1 




M40 MiniTerm Associates?^ 9 




M7 ""M6r>ovV5 MlcTTrST0Tf128 9 




M32 Mullen Computer Boards 115 




M38 Multi-Micro Media Corporation 85 1 




05 OK Machine & Tool 76, 77 1 




02 On Line 62 




03 Optoelectronics 131 




08 Orthon Computers 113 9 






09 Otto Electronic 


^^^HHsl 


P9~TAlA itfo 




P17 Parasitic Engineering CIV 




P7 Percom Data Company 28 




• Percomp '78 38, 39 1 




P24 Pitts Enterprises 62 




P21 Priority One Electronics 125,127 1 




Q3 Quest 122 9 




R12 Rainbow Computing, Inc. 44 1 




R14 Realistic Controls 45 9 




R20 RNB Enterprises 124 1 




R16 Ro Che 113 1 




S2 S.D. Sales 137 9 




S46 Smoke Signal Broadcasting 101 9 




S5 Solid State Sales 85 9 




S6 SWTPC CM, 3 1 




S42 Sybex, Inc. 59 




T11 Tarbell Electronics 35 1 




T26 Telecommunications Services 44 




T13 Teletypewriter Communication Specialists 78 




T1 Tri-Tek, Inc. 135 1 




W1 3 Wasatch Semiconductor 78 




W16 World Wide Electronics 103 




From Kilobaud . . . 139-145 



kilobaud 



books, etc. 



Advanced BASIC $6.95 

Basic New 2nd Edition $4.95 

BASIC Software Library, Vol 1 All $24.95 ea., 

Vol III $39.95, Vol IV & V $9.95 ea. 
Build-it Book of Digital Electronic Timepieces $6.95 
CMOS Cookbook $9.95 
Chemistry With a Computer $9.95 
The Compulator Book $7.95 
Computer Dictionary $5.95 
Computer Programming Handbook $9.95 
Discovering BASIC $6.85 
Fortran Programming $7.95 
Fortran Workbook $4.95 
Fun With Computers and BASIC $6.95 
General Class Study Guide $5.95 
Hobby Computers Are Here! $4.95 
Home Computers, 2 10 Q&A, Vol I $7.95, Vol II $6.95| 
An Introduction to Microcomputers, Vol 1 $7.50, 

Vol II $15.00 
Introduction to Microprocessors $17.50 
Microcomputer Dictionary $15.95 
Microcomputer Primer $7.95 
Microprocessor Interfacing Techniques $9.95 
Microprocessor Programming $8.95 
Microprocessors $9.95 

My Computer Likes Me . . . When I speak BASIC $2.00| 
The New Hobby Computers $4.95 
Novice Study Guide $4.95 
1976 Periodical Guide for Computerists $3.00 

January- June 1977 Edition $3.00 
A quick Look at BASIC $3.95 
The New RTTY Handbook $5.95 
Scelbi's First Book of Computer Games $14.95 
Scelbi's Galaxy Game for the "6800" $14.95 
Secret Guide to Computers, Part I $2.75, 

Part II $2.50, Part III $3.50 
Some Common BASIC Programs $7.50 
SSTV Handbook $5.00 (Soft), $7.00 (Hard) 
The Story of Computers $4.95 
TTL Cookbook $8.95 
TVT Cookbook $9.95 
Test Equipment Library $4.95 ea. 
Vol I Component Testers 
Vol II Audio Frequency Testers 
Vol III Radio Frequency Testers 
Vol IV IC Test Equipment 
Tychon's 8080 Hex Code Card $3.00 
Tychon's 8080 Octal Code Card $3.00 
The Underground Buying Guide $5.95 
VHF Antenna Handbook $4.95 
Weather Satellite Handbook $4.95 
What to Do After You Hit Return $8.00 
60 Challenging Problems With BASIC Solutions $6.95 
101 BASIC Computer Games $7.50 
6800 Programming for Logic Design $7.50 
6800 Software Gourmet Guide and Cookbook $9.95 
8080 Programming for Logic Design $7.50 
8080 Software Gourmet Guide and Cookbook $9.95 

KB Back Issues - Issue #1 - $5.00 ea.; 

Others - $3.00 ea. 
Binders for Kilobaud 1977- $6.00 ea.; 2 for $11.00, 

$5.00 each additional binder. 
Computermania T — shirts — $5.50 ea. 



Circle appropriate Reader Service # for desired company brochures, data sheets or catalogs and mail to 
Kilobaud Magazine, Peterborough NH 03458. Include your zip code, please. Send money directly to 
advertisers. LIMIT: 25 requests. 



A38 


B27 


C64 


C57 


E21 


H20 


121 


M30 


M38 


09 


P21 


R16 


S42 


W13 


A48 


C50 


C44 


D13 


F4 


H5 


J1 


M31 


05 


P9 


Q3 


S2 


T11 


W16 


A43 


C53 


C34 


D12 


F8 


113 


M17 


M40 


02 


P17 


R12 


S46 


T26 


r$ 


B26 
B28 


C36 
C28 


C31 
C65 


D20 


G4 


19 


M27 


M7 


03 


P7 


R14 


S5 


T13 




D26 


G15 


I1C 


M16 


M32 


08 


P24 


R20 


S6 


T1 


(kilobaud] 



I H/ant to SUbSCribe! □ 3 years @ $36.00* *U.S. & Canada ONLY! 

Send me KB for: □ Life Sub - $195.00** Others write for foreign rates. 

U 1 year @ $15.00* □ New Subscription **U.S. ONL Y! j 



This month's ARTICLE WINNER (Title page number) 



Please send me the following Kilobaud products: 



Quantity 



Description 



Unit Price 



Total 



Please print or type! 
Coupon expires in 60 days. 

Enclosed $ □ Cash 

Bill: □ American Express 



Shipping & Handling Charge $1.00 

Total 



□ Check □ Money order 
□ BankAmericard/Visa □ Master Charge 



Credit Card #. 



Expiration date 
Name 

Address 

City 



Signature 



State 



Zip 



4/78 



RQll 



Hours per week spent working with your 

system? 

What functions are you using your system 
for?__ 



Do you ever write your own software? 



Did you build your system or buy it 
assembled? 

What source do you use to answer any 

questions or help solve any problems that 

arise? 

local computer store personnel 

a call to the manufacturer 

reference books 

local computer club 

What articles would you like to see in KB? 




kilobaud 



Peterborough nh 03458 



computer 
st awfully 



bored when 



communicate 




Be sure to use coupon 

on the facing page 

of this magazine 

to order your FREE 

Heathkit Catalog. 



»■ ■»■ ■ . b— ^« c | | 


^^tr 




' — i____ " — ' " 



Why us? Because 
we make peripheral 
kits. In fact, they're 

some of the best Short-form Displi 

around. Our H9 is 
an excellent ex- 
ample. Its a com- 
plete ASCII key- 
board/12" CRT 

terminal that was designed for 
hobbyists just like you. It has a 
lot of really great features and 
resolution that's just beautiful. 
Right on out to 80 characters per 
line. (Something most outboard 
TV monitors won't match!) And 
with built-in selectable inter- 
facing options, the H9 will 
"converse" with just about any 
computer going! 



The H10 is another of our "univer- 
sal" peripheral kits. Completely 
self-contained (it even has its 
own power supply), this rugged 
paper tape reader/punch gives 
you quick, convenient mass stor- 
age and internal tape duplication 
capability. It's easy to build and, 
with its heavy-duty stepper 
motor, sensitive Darlington photo 
transistors and precision 
punches, the H10 is a source of re- 
liable data loading and 
storage - time after time. 

Best of all, priced at $530 and 
$350 respectively* the H9 and 
H10 kits cost less than most 
other comparable peripherals 
on the market today! 

A computer can get awfully 
bored when it can't communi- 
cate. Start communicating with 
yours through an economical 
peripheral from Heath! 

Mail order. FOB, Benton Harbor, Michig< 
Retail prices slightly higher. 
Prices and specifications subject to char, 
without notice. 






System Engineered 
for Personal Computing 






When you put it together, it's really together. 

Some people build personal computers for the love of building. The Equinox System™ 
s for people who build for the love of computing. 

You put it together. And it's really together. 

The Equinox 100™ mainframe combines the 8080A CPU with a front panel program- 
ming station featuring ultra-convenient octal keyboard and digital LED readout. 

Therefore low-cost 4K and 8K memories. All your interfacing comes in one kit. Even 
EQU/ATE and B ASIC-EQ ™ languages on easy-loading cassettes. 

It's all together now. It's all S-100 compatible. And it's upward-compatible with new 
Equinox equipment, software and systems coming in the months ahead. ' 

See the Equinox System™ at your local computer shop. Call toll-free to 800-648-5311 
(BAC/MC accepted). Or write Equinox Division, Parasitic Engineering, P.O. Box 6314, 
Albany, California 94706. THE EQUINOX SYSTEM™ All together now f* 



•hP